RewriteRule导致无限重定向循环

时间:2010-01-30 02:58:46

标签: .htaccess mod-rewrite

标题不能公正地解决这个问题。

我有一个网站,我希望将其重定向到子文件夹。

我现在有这个:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.mysite.net$
RewriteRule ^(.*)$ "http\:\/\/www\.mysite\.net\/subfolder$1" [R=301,L]

问题在于它会导致无限重定向循环。它到达/并将其重定向到子文件夹,当它到达那里时,它再次重定向它。

如何在到达指定的子文件夹后立即停止重定向。

3 个答案:

答案 0 :(得分:1)

我想我现在就明白了:

RewriteEngine on
RewriteRule !^(subfolder/) http://www.mysite.net/subfolder/ [L,R]

从这里删除的答案中得到一些灵感:

答案 1 :(得分:0)

为目标添加排除规则。

RewriteEngine on

RewriteRule ^/subfolder - [L]

RewriteCond %{HTTP_HOST} ^mysite.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.mysite.net$
RewriteRule ^(.*)$ "http\:\/\/www\.mysite\.net\/subfolder$1" [R=301,L]

答案 2 :(得分:0)

此外,对于RewriteCond,您可以这样做:

RewriteCond %{HTTP_HOST} ^(www.)?mysite.net$

保存一行