0

我正在尝试从domain.com/user/12345todomain.com/user?id=12345和 from domain.com/user/12345/profileto重定向domain.com/user/profile?id=12345

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

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

它适用于domain.com/user/12345/profiledomain.com/user/12345不重定向。

对于这种情况,我也尝试过这种最简单的形式:

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

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

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

更新:

我在这个文件中的下一条规则从domain.com/userto重写domain.com/user.php,依此类推。domain.com/user/12345如果没有定义前面的规则,它会从to重写,domain.com/user/12345.php但是在定义了前面的规则的情况下,它也不会重写。

这是否意味着存在跳过第二条规则的任何种类或转换,或者存在阻止规则验证的任何类型的错误?

4

1 回答 1

0

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

所以规则必须是这样的:

RewriteRule ^user/([0-9]*)(/.*)?$ /user$2?id=$1 [L,QSA]
于 2013-08-08T14:39:20.813 回答