1

我想做的是重定向

http://example.com/sample/

http://example.com/this/that/?which=那些

这是我尝试过的;

RewriteRule ^sample.*$ http://example.com/this/that/?which=those [R=301,L]

但它重定向到http://example.com/this/that/,没有参数。

只有当我在 url 之后写一些东西(随机)时,它才会正确重定向,包括参数。

我究竟做错了什么?任何帮助是极大的赞赏!!

4

2 回答 2

1

您只需要这条规则:

RewriteRule ^sample/?$ /this/that/?which=those [R=302,L,NC,QSA]

确保在测试之前清除浏览器缓存并重新启动浏览器。

重要提示:记住不要R=301 (Permanent Redirect)在测试 mod_rewrite 规则时使用。仅在您验证它可以正常工作后,更改R=302 (Temporary Redirect)R=301 (Permanent Redirect)

于 2013-04-18T15:35:45.810 回答
0

将您的规则更改为:

RewriteRule ^sample(.*)? http://example.com/this/that/?which=those [R=301,L]

在这里,我们通过捕获通配符并使用可选的正则表达式标志使通配符成为可选:(.*)?

因此,samplesample/test/hello都将重定向。

于 2013-04-18T15:31:50.023 回答