【问题标题】:Do MOD_Rewrite rewrites invoke a second run through the rewrite rules?MOD_Rewrite 重写是否通过重写规则调用第二次运行?
【发布时间】:2010-09-18 18:11:26
【问题描述】:

当一个 RewriteRule 被 MOD_Rewrite 执行时,是否会为新生成的请求再次执行所有 MOD_Rewrite 规则?具体在下面的例子中,这会不会导致循环?

RewriteCond Host:  (?:www\.)?mysite\.com
RewriteRule ^(.*)$ $1 [QSA,L]

【问题讨论】:

    标签: iis mod-rewrite isapi-rewrite


    【解决方案1】:

    在您的情况下,它无论如何都不会循环。您打开了“L”开关,将特定规则固定为最后一个。

    此外,您必须使用“N”或“NS”开关显式地强制下一次迭代,否则它只会在您的规则文件中移动并在最后一个匹配的规则处停止。来自文档:

    N(下一次迭代)

    强制重写引擎修改 规则的目标和重启规则 从头开始检查(所有 修改被保存)。数量 重新启动受值限制 在重复限制中指定 指示。如果超过这个数字 N 标志将被简单地忽略。

    NS(同一规则的下一次迭代)

    像 N 标志一样工作,但会重新启动 来自同一规则的规则处理 (即强制重复规则 应用)。最大数量 单个规则迭代由 重复限制指令。但是一些 一条规则重复不算数 对于全球重复次数(即 重复次数限制 由 N 标志引起的迭代是 与重复次数无关 NS引起的)。

    【讨论】:

      猜你喜欢
      • 2012-07-22
      • 2010-12-25
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      • 2012-07-28
      • 2011-02-23
      相关资源
      最近更新 更多