在我的网站上有很多丑陋的URL,现在我需要将它们重写为友好的用户友好URL。
这些是我网站上的一些丑陋的网址:
http://www.mydomain.com/profiles/tutors/index.php?code=1285&name=Ricky+Pointing
http://www.mydomain.com/profiles/centers/index.php?code=2285&name=City+&+Gills
http://www.mydomain.com/about.php
http://www.mydomain.com/contact.php.... and much more
所以我正在为以上丑陋的URL寻找友好的用户友好解决方案,如下所示:
http://www.mydomain.com/tutors/Ricky_Pointing.html
http://www.mydomain.com/centers/City_&_Gills.html
http://www.mydomain.com/about.html
http://www.mydomain.com/contact.html
我在.htaccess文件中尝试了类似的东西..
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profiles/tutors/index.php\?code=([0-9]+)&name=([^&]+)&?([^\ ]+)
RewriteRule ^profiles/tutors/index\.php /%1/%2/?%3 [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/(.+)/$ /profiles/tutors/index.php?code=$1&name=$2 [L,QSA]
但仍然没有运气。 任何人都可以帮我这样做吗? 谢谢。
答案 0 :(得分:0)
我认为你可能会用RewriteCond
等过度复杂化它。你可能会有这样的规则:
RewriteRule ^about\.html$ about.php [L]
RewriteRule ^contact\.html$ contact.php [L]
RewriteRule ^tutors/(.*)\.html$ /profiles/tutors/index.php?name=%1 [L]
RewriteRule ^centers/(.*)\.html$ /profiles/centers/index.php?name=%1 [L]
然后,您必须修改PHP脚本,以便在不依赖于code
的情况下查找具有该名称的相应内容。它还必须处理原始URL中存在的下划线。