将丑陋的网址转换为用户友好的网址

时间:2013-05-20 04:16:24

标签: .htaccess

在我的网站上有很多丑陋的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]

但仍然没有运气。 任何人都可以帮我这样做吗? 谢谢。

1 个答案:

答案 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中存在的下划线。