我认为[L]标志表示“这个规则应该是这个http请求处理的最后一个规则..”
但是,当我有两个规则,如:
RewriteRule ^test$ php/test.php [L] RewriteRule (.*) error.php
总是发生的是请求http:// localhost / test去error.php, 而不是我想象的test.php,因为我把[L]放在那里。 如果你注释掉那里的第二个规则,那么请求http:// localhost / test按预期转到test.php。
我真正想要做的是用mod_rewrite捕获404错误。 我想要做的事情可能是错的。 但是我仍然想知道为什么catch-all规则是活跃的,因为我在^test规则之后放了一个[L]。
我在这里看到一个很大的列表,在这里服务器pipe理员列出了一大堆以识别的目录开头的path,但是我想避免通过简单地使用一个很好的catch-all规则来做到这一点。
如果规则导致客户端redirect,则当客户端发出redirect请求时,它将从顶部再次重新input规则列表。