1

在我的网站上,我试图将一个长 URL 重写为一个对 SEO 友好的 URL。

我有以下代码,但它似乎没有任何影响!但是,如果我输入dgadgdfsg我的 htaccess,它会引发内部服务器错误。所以我假设它与重写规则有关。

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L]

我已确认 mod_rewrite 已打开。


这是当前网址

http://mysite.com/missing-people/user-profile.php?userID=1&firstName=Liam&lastName=Gallagher

这就是我想要的样子

http://mysite.com/1/Liam/Gallagher

4

2 回答 2

1

将您的 RewriteRule 更改为此(根据您的版本稍作修改)

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [QSA,L]

如果这不起作用,请尝试R为测试目的放置一个标志(这将使您的浏览器将原始 URI 更改为:/missing-people/user-profile.php?userID=1&firstName=Liam&lastName=Gallagher

于 2012-07-12T15:49:57.680 回答
0

假设您userID的仅由数字组成,firstName并且lastName仅由字母数字组成。

RewriteEngine On
RewriteRule /(\d+)/(\w+)/(\w+)/ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L]

一个更严格的版本,除了为评估的正则表达式的开头和结尾设置边界之外,它做同样的事情。

RewriteEngine On
RewriteRule /^(\d+)\/(\w+)\/(\w+)$/ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L]
于 2012-07-12T12:53:39.943 回答