RewriteRule 的“-”(减号)是什么?

yar*_*rek 1 .htaccess mod-rewrite

我在 .htaccess 中有这个规则。

RewriteRule ^(.+)\.([0-9a-zA-Z]+)$ - [L,NC]
Run Code Online (Sandbox Code Playgroud)

我不明白什么是“-”(减号),只是开始 [L,NC]

$ - [L,NC]

Mic*_*ski 5

来自Apache mod_rewrite 文档

  • (破折号)破折号表示不应该执行替换(现有路径原封不动地通过)。当需要在不更改路径的情况下应用标志(见下文)时使用。

实际上,这意味着在匹配输入 URL 模式时不采取任何措施。之后 with[L]确保不会执行后续匹配,因此输入 URL 将“按原样”使用。这可用于在某个特定模式与更一般的模式匹配时免于重写。

您不会太频繁地看到类似问题的规则,因为通常可以通过对 重新排序RewriteRule或修改更通用的匹配模式使其与豁免模式不匹配来获得相同的结果。