RewritCond。内部重定向过多。 LimitInternalRecursion。

时间:2015-05-19 00:06:47

标签: .htaccess redirect mod-rewrite url-rewriting

此代码表现出不同的条件顺序:

此代码有效

RewriteCond %{HTTP_HOST} ^(www.)?mypage.com$ [NC]
RewriteCond %{REQUEST_URI} !test/[NC]
RewriteCond %{REQUEST_URI} !x/ [NC]
RewriteCond %{REQUEST_URI} !test2/ [NC]
RewriteRule ^(.*)$ /test2/$1 [L]

这个不起作用 - 内部服务器错误550 -

RewriteCond %{HTTP_HOST} ^(www.)?mypage.com$ [NC]
RewriteCond %{REQUEST_URI} !test2/[NC]
RewriteCond %{REQUEST_URI} !x/ [NC]
RewriteCond %{REQUEST_URI} !test/ [NC]
RewriteRule ^(.*)$ /test2/$1 [L]

服务器日志:

由于可能的配置错误,请求超出了10个内部重定向的限制。如有必要,使用'LimitInternalRecursion'增加限制。

如何进行循环?为什么只在其中一个案例中?

1 个答案:

答案 0 :(得分:0)

很难注意到打字错误。其中一个conds中的最终参数之间没有空格。

这里更容易发现:

RewriteCond %{REQUEST_URI} !foo/[NC]< -fails
RewriteCond %{REQUEST_URI} !foo/ [NC]< -works