重写规则的'-'(减号)是什么?



我在。htaccess中有这个规则。

RewriteRule ^(.+).([0-9a-zA-Z]+)$ - [L,NC]

我不明白"-"(负号)是什么意思,只要开始[L,NC]

$ - [L,NC]

来自Apache mod_rewrite文档:

  • (dash)破折号表示不应该执行替换(不修改现有路径)。当需要在不改变路径的情况下应用一个标志(见下文)时使用。

实际上意味着当输入URL模式匹配时不采取任何操作。在[L]之后,确保不会执行后续匹配,因此输入URL被"按原样"使用。这可以用来免除一个特定的模式被重写,否则它将被一个更通用的模式匹配。

您不会经常看到像问题中的规则,因为通常可以通过重新排序RewriteRule来获得相同的结果,或者通过修改更一般的匹配模式使其不匹配开始的豁免模式。

破折号表示不应该执行替换(不改变现有路径)。当需要在不更改路径的情况下应用标志(见下文)时,使用此方法。(http://httpd.apache.org/docs/current/mod/mod_rewrite.html rewriterule)

L标志结合,这表明这些url应该不进行转换处理,不应该应用其他规则。

最新更新