尝试从domain.com/user/12345重定向到domain.com/user?id=12345

时间:2013-08-08 14:06:02

标签: .htaccess mod-rewrite

我正在尝试从domain.com/user/12345重定向到domain.com/user?id=12345,从domain.com/user/12345/profile重定向到domain.com/user/profile?id=12345

我在.htaccess中写了这条规则:

RewriteRule ^user/([0-9]*)(/.*)?$ user$2?id=$1 [L,QSA]

适用于domain.com/user/12345/profile,但domain.com/user/12345未重定向。

我也尝试过这种最简单的形式:

RewriteRule ^user/([0-9]*)$ user?id=$1 [L,QSA]

我在http://htaccess.madewithlove.be/进行了测试,似乎工作正常。

¿我的错误是什么? ¿我该怎么做?

更新

我在此文件中的下一个规则会从domain.com/user重写为domain.com/user.php,依此类推。如果未定义先前的规则,则会从domain.com/user/12345重写为domain.com/user/12345.php,但如果定义了先前的规则,则不会重写此内容。

这是否意味着有任何类型或转换跳过第二条规则或有任何类型的错误停止规则验证?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我不知道为什么它在一个案例中运作良好而在另一个案例中却没有,但我忘记了斜线,所以它试图重写为user?id=12345而不是/user?id=12345

所以规则必须像这样:

RewriteRule ^user/([0-9]*)(/.*)?$ /user$2?id=$1 [L,QSA]