什么[L]在apache重写中意味着什么?

时间:2009-11-08 13:59:32

标签: mod-rewrite url-rewriting

喜欢这里:

RewriteEngine on 
RewriteRule ^(.*)\.[\d]+\.(css|js)$ $1.$2 [L] 

5 个答案:

答案 0 :(得分:12)

[L]是一个标志,表示如果此规则匹配,则不会对此页面执行任何其他规则匹配。

mod_rewrite documentation说:

  

[L]标志使mod_rewrite停止处理规则集。在大多数情况下,这意味着如果规则匹配,则不会处理其他规则。

但是,文档继续注意,不应依赖[L]来停止mod_rewrite处理,例如,如果您的规则导致HTTP重定向,那么就可以重新遇到规则集再次,这可能导致infinte循环。

  

因此,如果您在其中一个上下文中使用RewriteRule指令,则需要采取明确的步骤来避免规则循环,并且不要仅依靠[L]标志来终止执行一系列规则

答案 1 :(得分:1)

如果规则匹配,则不再处理。

查看完整的旗帜列表:http://httpd.apache.org/docs/2.2/rewrite/rewrite_flags.html

答案 2 :(得分:1)

这意味着如果此规则匹配,则不应再进行规则匹配。 L =最后。

Documentation for l/last

答案 3 :(得分:1)

  

[L]标志导致mod_rewrite为   停止处理规则集。多数情况   上下文,这意味着如果规则   比赛,没有进一步的规则   处理。

来自the Apache mod_rewrite Flags documentation

答案 4 :(得分:0)

这意味着最后,重写引擎将停止搜索匹配的规则。您可以参考documentation

通常使用它来避免匹配其他规则,当您确定不需要进行任何其他重写时,可以使用它。