我知道.htaccess规则从上到下进行了解析,但如果我的网址与两个规则相匹配,将会使用哪些规则以及为什么会这样做?
我有简单的规则,比如
^(.*)$ index.php?pag=cms&title=$1
^store/(.*)$ index.php?pag=store&id=$1
基本上任何网址都会匹配第一条规则,那么其他网址会发生什么?
答案 0 :(得分:6)
如果URL匹配两个规则,则它是第一个重写的规则。这并不是说第二条规则不会触发。但确实如此,因为后续规则触发了它之前的规则的输出。
如果您不希望重写被删除并停在第一个匹配规则,您可以使用[L]
标记将规则标记为最后一个。
^(.*)$ index.php?pag=cms&title=$1 [L]
^store/(.*)$ index.php?pag=store&id=$1 # won't fire now