2012-07-12 192 views
1

在我的网站上,我正在尝试重写一个适合搜索引擎优化的长URL。网址重写无法正常工作

我有下面的代码,但它似乎没有什么影响!但是,如果我在我的htaccess中输入dgadgdfsg,则会引发内部服务器错误。所以我认为这是重写规则。

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

我已确认mod_rewrite已打开。


这是当前的URL

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

和这是我想它也出现像

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

+0

能否请您添加您要处理搜索引擎友好的URL外部一次 – DavChana 2012-07-12 12:51:46

+0

编辑@Davinder – Callum 2012-07-12 12:54:29

回答

1

改变你的重写规则这(从您的版本略有修改)

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

0

意味着你的什么仅包含数字,而firstNamelastName仅为字母数字。

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] 
+0

感谢@holodoc,但是处理不当的工作,好像没有什么改变 – Callum 2012-07-12 12:58:48

+0

它应该工作。尝试用'[R]'替换'[L]'来查看外部重定向是否起作用,或至少确认重写工作(浏览器URL应该改变)。 – brezanac 2012-07-12 13:04:37