2013-07-18 6 views
0

Я знаю. Правила htaccess анализируются сверху вниз, но что, если мой URL-адрес соответствует двум правилам, которые будут использоваться и почему?Правило приоритета Apache htaccess

У меня есть простые правила, как

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

В принципе любой URL будет соответствовать первому правилу, так что происходит с другими из них?

ответ

5

Если URL-адрес соответствует двум правилам, это первый, который переписывает. Это не значит, что второе правило не срабатывает. Он делает это, но он не подходит, потому что последующие правила загораются на выходе предшествующего ему правила.

Если вы каким-то образом не хотите, чтобы переписывание проходило и останавливалось при первом правиле сопоставления, вы можете пометить это правило как последнее, используя флаг [L].

^(.*)$ index.php?pag=cms&title=$1 [L] 
^store/(.*)$ index.php?pag=store&id=$1 # won't fire now 
Смежные вопросы