Apache 同一初始路由的.htaccess规则存在问题
我的.htaccess中有两条规则:Apache 同一初始路由的.htaccess规则存在问题,apache,.htaccess,mod-rewrite,url-rewriting,friendly-url,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,第二条规则将被忽略 因为初始路
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,第二条规则将被忽略
因为初始路线相似,所以似乎不阅读第二条规则:
- 品牌/车型-1/
- 品牌/型号-1/退出页面/
谢谢大家 正则表达式是贪婪的。 这意味着您的第一个规则也与第二个场景匹配 如果在末尾添加
$
,则应精确匹配品牌/model-1/
。
将尾部斜杠设置为可选仍然是安全的,如下所示:
RewriteRule ^brand/model-1(/)?$ models.php?id_model=1 [QSA]