0

在我的网站中有很多丑陋的 URL,现在我需要将它们重写为用户友好的 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]

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

4

1 回答 1

0

我认为您可能会用RewriteConds 等使其过于复杂。你可能会有这样的规则:

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

于 2013-05-20T04:24:39.750 回答