重写条件。太多的内部重定向。限制内部递归。
RewritCond. Too many internal redirects. LimitInternalRecursion.
此代码的行为因条件的顺序而异:
此代码有效
RewriteCond %{HTTP_HOST} ^(www.)?mypage.com$ [NC]
RewriteCond %{REQUEST_URI} !test/[NC]
RewriteCond %{REQUEST_URI} !x/ [NC]
RewriteCond %{REQUEST_URI} !test2/ [NC]
RewriteRule ^(.*)$ /test2/ [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/ [L]
服务器日志:
由于可能的配置错误,请求超过了 10 个内部重定向的限制。如有必要,使用 'LimitInternalRecursion' 增加限制。
那个循环是怎么来的?为什么只有其中一种情况?
只是很难注意到打字错误。其中一个 conds 中的最终参数之间没有 space。
这里更容易发现:
RewriteCond %{REQUEST_URI} !foo/[NC]
<-失败
RewriteCond %{REQUEST_URI} !foo/ [NC]
<-有效
此代码的行为因条件的顺序而异:
此代码有效
RewriteCond %{HTTP_HOST} ^(www.)?mypage.com$ [NC]
RewriteCond %{REQUEST_URI} !test/[NC]
RewriteCond %{REQUEST_URI} !x/ [NC]
RewriteCond %{REQUEST_URI} !test2/ [NC]
RewriteRule ^(.*)$ /test2/ [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/ [L]
服务器日志:
由于可能的配置错误,请求超过了 10 个内部重定向的限制。如有必要,使用 'LimitInternalRecursion' 增加限制。
那个循环是怎么来的?为什么只有其中一种情况?
只是很难注意到打字错误。其中一个 conds 中的最终参数之间没有 space。
这里更容易发现:
RewriteCond %{REQUEST_URI} !foo/[NC]
<-失败
RewriteCond %{REQUEST_URI} !foo/ [NC]
<-有效