有人能举例说明何时使用[L]标志?我在.htaccess文件中学习了mod_rewrite moudle,并且无法找到该标志的时间。
答案 0 :(得分:1)
L
标志仅表示停止应用后面的任何规则。给定相同的网址http://example.com/foo/bar?q=blah
,并给出规则:
RewriteRule ^foo -
RewriteCond %{REQUEST_URI} !^/bar.php
RewriteRule ^(.*)$ /bar.php?z=$1
应用第一个规则并且URI通过不变(通过-
目标)传递。然后重写引擎处理下一个规则,并将URI重写为/bar.php?z=foo/bar
。将L
添加到结尾时会发生什么:
RewriteRule ^foo - [L]
RewriteCond %{REQUEST_URI} !^/bar.php
RewriteRule ^(.*)$ /bar.php?z=$1
网址http://example.com/foo/bar
在第一条规则中不受影响,然后停止,因为L
标记。如果网址为http://example.com/something/else
,则第一条规则不匹配,并应用第二条规则,将URI重写为:/bar.php?z=something/else
请注意,由于重写引擎会遍历所有规则,直到URI停止更改,L
标志 迭代。