MOD_Rewrite重写是否通过重写规则调用第二次运行?
-
04-07-2019 - |
题
当MOD_Rewrite执行RewriteRule时,是否会为新生成的请求再次执行所有MOD_Rewrite规则?特别是在下面的例子中,这会导致循环吗?
RewriteCond Host: (?:www\.)?mysite\.com
RewriteRule ^(.*)$ $1 [QSA,L]
解决方案
在你的情况下,它无论如何都不会循环。你有“L”打开,将该特定规则修复为最后一个。
此外,您必须通过使用“N”来明确强制下一次迭代。或“NS”或“NS”。切换,或者只是在规则文件中移动并停止匹配的最后一个规则。来自文档:
N(下一次迭代)
强制重写引擎进行修改 规则的目标和重启规则 从头开始检查(全部 保存修改)。数量 重新启动受到值的限制 在RepeatLimit中指定 指示。如果超过此数量 N标志将被忽略。
NS(同一规则的下一次迭代)
像N标志一样工作,但重新启动 规则从同一规则处理 (即强制重复该规则 应用)。最大数量a 单一规则迭代由。给出 RepeatLimit指令。但是一些 重复的单一规则不计算在内 对于全球重复次数(即 重复限制一些 由N flag引起的迭代是 独立于许多重复 由NS)引起。
不隶属于 StackOverflow