私は、より大きなバージョンの URL にリダイレクトされる短い URL が多数あるサイトで作業しています。短い URL はオフラインで配布され、ユーザーは通常それらを覚えており、ブラウザーのアドレス バーに入力するという考え方です。例:
http://www.example.com/abcはhttp://www.example.com/higher_education/companion/politics/abc.html
にリダイレクトする必要
があります。また、いくつかの外部リンクもあります。のように: http://www.example.com/googleはユーザーをhttps://www.google.com
にリダイレクトします
編集 -
http://www.example.com/elementary/def.htmlになる別のシナリオがありますhttp://www.example.com/elementary/xyz.html
にリダイレクトされます。RewriteMap
. そのために作成したコードは次のとおりです。
<IfModule rewrite_module>
RewriteEngine on
RewriteMap custommap txt:/var/www/vhosts/example.com/httpdocs/map.txt
#RewriteCond %{REQUEST_URI} !^/index.php$
RewriteRule "^(.*)$" "${custommap:$0}" [R,L,NC]
</IfModule>
含まれるmap.txt
もの:
abc http://www.example.com/higher_education/companion/politics/abc.html
google https://www.google.com
問題は、.htaccss ファイルにもいくつかの RewriteRule が含まれていることです。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)\.html$ /index.php?sid=$1&ssid=$2 [L,NC,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /index.php?sid=$1 [L,NC,QSA]
そのため、付属のすべてのリクエストは、標準の CMS 機能として.html
提供されます。index.php
ただし、コードはリダイレクト ループに入ります。この問題を軽減するために誰かが光を共有するなら、それは素晴らしいことです. Apache のバージョンは 2.2 なので、IF-ELSE は使用できません。
よろしく、
アニーク