我真的需要一些帮助将脏 URL 重定向到干净的 URL。
肮脏的 URL:生物.php?beast=
清洁网址:/mythical-creature/
目前我的 .htaccess 看起来像这样:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mythicalcreatureslist.com [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^www.mythbeasts.com [NC]
RewriteRule ^(.*)$ http://www.mythicalcreatureslist.com/$1 [L,R=301]
RewriteRule ^menu/([A-Za-z0-9-+]+)/?$ menu.php?menu=$1 [NC,L]
RewriteRule ^menu_two/([A-Za-z0-9-+]+)/?$ menu_two.php?menu=$1 [NC,L]
RewriteRule ^mythical-creature/([A-Za-z0-9-+\'%]+)/?$ creature.php?beast=$1 [NC,L]
这样做的目的是使网站在浏览时显示干净的 URL,这很棒。但是,在 URL 栏中键入时,旧的脏 URL 不会重定向。
示例:蒙古死亡蠕虫 http://www.mythicalcreatureslist.com/creature.php?beast=Mongolian+Death+Worm
我希望它重定向到: http ://www.mythicalcreatureslist.com/mythical-creature/Mongolian+Death+Worm
这会导致重复的内容。我努力了:
RewriteRule ^/mythical-creature/([A-Za-z0-9-+\'%]+)/?$ http://www.mythicalcreatureslist.com/creature.php?beast=$1 [R=301,NC,L]
但这样做是导致肮脏的一直被使用。
然后我把它翻过来:
RewriteRule ^creature.php?beast=([A-Za-z0-9-+\'%]+)/?$ http://www.mythicalcreatureslist.com/mythical-creature/$1 [R=301,NC,L]
但这只是在浏览时导致 404,并且在地址栏中键入时仍然没有重定向旧的脏 URL。