相同的初始路由的.htaccess规则存在问题

时间:2019-06-25 21:46:47

标签: apache .htaccess mod-rewrite url-rewriting friendly-url

我的.htaccess文件中有这两个规则:

RewriteRule ^brand/model-1/ models.php?id_model=1 [QSA]

RewriteRule ^brand/model-1/exit-page/ exit.php?id_model=1 [QSA]

第一个规则是转到模型,第二个规则是转到退出页面。

问题是:

如果我在浏览器中访问: brand / model-1 / exit-page / ,则需要第一个规则 brand.php?id_model = 1 规则被忽略。

似乎没有读第二条规则,因为初始路线相似:

  • brand / model-1 /
  • brand / model-1 / exit-page /

希望您能帮助我! :)

谢谢大家!

1 个答案:

答案 0 :(得分:1)

正则表达式是贪婪的。 这意味着您的第一个规则也与您的第二个情况相匹配。

如果在末尾添加$,则应精确匹配brand/model-1/。 将尾部斜杠设为可选仍然是安全的,例如:

RewriteRule ^brand/model-1(/)?$ models.php?id_model=1 [QSA]