.htaccess 规则对同一初始路由的问题
Problem with .htaccess rule to same initial route
我的 .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/
希望大家能帮帮我! :)
谢谢大家!
正则表达式是贪婪的。
这意味着您的第一个规则也符合您的第二个场景。
如果在末尾加上$
,则应该精确匹配brand/model-1/
。
将尾部斜杠设为可选仍然是安全的,如下所示:
RewriteRule ^brand/model-1(/)?$ models.php?id_model=1 [QSA]
我的 .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/
希望大家能帮帮我! :)
谢谢大家!
正则表达式是贪婪的。 这意味着您的第一个规则也符合您的第二个场景。
如果在末尾加上$
,则应该精确匹配brand/model-1/
。
将尾部斜杠设为可选仍然是安全的,如下所示:
RewriteRule ^brand/model-1(/)?$ models.php?id_model=1 [QSA]