求助:编写匹配/starters-and-alternators/{任意内容}的.htaccess规则
解决.htaccess匹配/starters-and-alternators后任意内容的重写规则问题
你的现有规则只精确匹配了/starters-and-alternators和/starters-and-alternators/这两种情况,没法覆盖后面带任意内容的请求。我来给你一个简洁且全面的解决方案:
最终实现规则
RewriteEngine On # 匹配所有以/starters-and-alternators开头的请求(含后续任意内容) RewriteRule ^starters-and-alternators(.*)$ app/core/code/miscellaneous/allstartersandalts.php [L,QSA]
规则详解
正则表达式部分:
^starters-and-alternators(.*)$^标记请求路径的起始位置starters-and-alternators匹配固定前缀(.*)捕获前缀之后的所有内容(包括空字符串、斜杠、子路径、查询参数前的?等等)$标记请求路径的结束位置
Flags(可选但推荐):
L:Last的缩写,告诉Apache处理完这条规则后就停止后续规则的执行,避免规则冲突QSA:Query String Append的缩写,自动将原请求的查询字符串附加到目标URL后,比手动拼接%{QUERY_STRING}更可靠,能避免重复?或者参数丢失的问题
补充说明
如果你需要的是外部可见的重定向(比如浏览器地址栏会显示目标URL),可以加上R=301(永久重定向)或R=302(临时重定向)flag:
RewriteRule ^starters-and-alternators(.*)$ app/core/code/miscellaneous/allstartersandalts.php [L,QSA,R=301]
这个规则会自动覆盖你之前写的两条精确匹配规则,无需保留原来的规则,一条就搞定所有符合/starters-and-alternators/{任意内容}格式的请求。
内容的提问来源于stack exchange,提问作者Kieran Rigby
相关产品推荐
相关产品推荐

