此代码表现出不同的条件顺序:
此代码有效
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'增加限制。
如何进行循环?为什么只在其中一个案例中?
答案 0 :(得分:0)
很难注意到打字错误。其中一个conds中的最终参数之间没有空格。
这里更容易发现:
RewriteCond %{REQUEST_URI} !foo/[NC]
< -fails
RewriteCond %{REQUEST_URI} !foo/ [NC]
< -works