代码之家  ›  专栏  ›  技术社区  ›  Rob Bell

mod重写重写调用第二次运行重写规则吗?

  •  0
  • Rob Bell  · 技术社区  · 17 年前

    当一个rewriterule被mod重写执行时,所有mod重写规则都会为新生成的请求再次执行吗?具体来说,在下面的示例中,这会导致循环吗?

    RewriteCond Host:  (?:www\.)?mysite\.com
    RewriteRule ^(.*)$ $1 [QSA,L]
    
    1 回复  |  直到 17 年前
        1
  •  3
  •   Tomalak    17 年前

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

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

    n(下一次迭代)

    强制重写引擎修改 规则的目标和重新启动规则 从头检查(全部 修改已保存)。数 重新启动受值限制 在repeatlimit中指定 指令。如果超过这个数字 n标志将被忽略。

    ns(同一规则的下一个迭代)

    工作方式与n标志类似,但重新启动 来自同一规则的规则处理 (即强制重复规则 应用程序)。A的最大数量 单规则迭代由 repeatlimit指令。但是一些 一条规则重复不算数 对于全局重复次数(即 对一个数重复限制 由n标志引起的迭代是 与多次重复无关 由NS引起)。

    推荐文章