Apache htaccess规则优先级

时间:2013-07-18 13:29:12

标签: mod-rewrite

我知道.htaccess规则从上到下进行了解析,但如果我的网址与两个规则相匹配,将会使用哪些规则以及为什么会这样做?

我有简单的规则,比如

^(.*)$ index.php?pag=cms&title=$1
^store/(.*)$ index.php?pag=store&id=$1

基本上任何网址都会匹配第一条规则,那么其他网址会发生什么?

1 个答案:

答案 0 :(得分:6)

如果URL匹配两个规则,则它是第一个重写的规则。这并不是说第二条规则不会触发。但确实如此,因为后续规则触发了它之前的规则的输出。

如果您不希望重写被删除并停在第一个匹配规则,您可以使用[L]标记将规则标记为最后一个。

^(.*)$ index.php?pag=cms&title=$1  [L]
^store/(.*)$ index.php?pag=store&id=$1 # won't fire now