请帮我找到这种行为的解决方案,这对我来说很陌生。mod_rewrite规则匹配,但链没有离开
这里是我的htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^emltr\.gif$ aaa.html [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
</IfModule>
注意了L位,所以我要说的是,当“GIF”规则匹配时链条离开。 但事实并非如此。
请求的URL是“emltr.gif”
如果“包罗万象”的规则和条件注释,那么“GIF”规则正确服用。 (“aaa.html”不存在,这是一种防止不必要的循环行为的测试。)
如果“全面通过”规则未注释,则采用IT,而不是第一条规则。为什么第二个而不是第一个?否则:为什么不是即使L标志离开链条,然后评估第二条规则?
谢谢
这就是L的工作原理,它会停止重写迭代。当规则匹配时,您可以使用END而不是L来立即结束重写过程 – starkeen