无法实现特定URL重写的RewriteRule配置,寻求技术帮助
URL重写规则修正方案
直接使用以下规则即可满足需求:
RewriteRule ^(aa|bb|cc)/(.*)$ /$2?$1 [NC,L,QSA]
规则说明:
^(aa|bb|cc)/(.*)$:精准匹配开头为aa/、bb/或cc/的URL,把两位CODE捕获到$1,后续的路径部分(比如pageX)捕获到$2/$2?$1:重写为基础路径/$2,并拼接CODE作为参数QSA标志会自动处理原有查询参数:如果原URL是domain/aa/page?p1&p2,会自动合并为domain/page?p1&p2&aa;如果原URL没有参数,就直接生成domain/page?aaNC忽略大小写(不需要可删除),L表示执行完该规则后停止后续规则处理
你之前规则的问题:
- 仅针对
aa单个CODE,未覆盖bb、cc - 手动拼接
?aa或&aa会导致参数冲突:无原有参数时用&aa会生成page?&aa的无效格式;有参数时用?aa会覆盖原有参数,而QSA标志正是用来自动解决这种参数拼接问题的,无需手动区分?和&
内容的提问来源于stack exchange,提问作者Nestor Mancilla
相关产品推荐
相关产品推荐

