.htaccess URL重写:访问带coupon-code的购物车URL追加add-to-cart参数
.htaccess 路径匹配追加参数重定向规则实现
首先确保你的Apache服务已经开启mod_rewrite模块,且站点配置中已经允许.htaccess文件执行重写规则,以下是符合需求的完整代码:
RewriteEngine On # 匹配/cart/路径且携带coupon-code参数的请求,追加add-to-cart参数 RewriteCond %{REQUEST_URI} ^/cart/$ RewriteCond %{QUERY_STRING} (^|&)coupon-code= [NC] RewriteCond %{QUERY_STRING} !(^|&)add-to-cart=123($|&) [NC] RewriteRule ^(.*)$ /$1?%{QUERY_STRING}&add-to-cart=123 [L,R=301,NE]
规则说明
RewriteEngine On:开启Apache重写引擎,是所有重写规则生效的前置条件- 第一条RewriteCond:匹配请求路径严格为
/cart/的请求 - 第二条RewriteCond:校验查询参数中存在
coupon-code参数,支持任意动态参数值,[NC]标识匹配时忽略参数大小写 - 第三条RewriteCond:校验当前请求参数中不存在
add-to-cart=123,避免重复追加参数导致死循环 - 最终RewriteRule:保留原请求路径和所有原有查询参数,追加
&add-to-cart=123后跳转:R=301表示永久重定向,若仅需要临时跳转可修改为R=302NE标识不对参数中的特殊字符进行转义,避免参数符号被编码导致失效L标识匹配到当前规则后不再执行后续的重写规则
如果你的站点配置了HTTPS强制跳转规则,请将上述规则放在HTTPS跳转规则之后执行,避免路径匹配失效。
内容的提问来源于stack exchange,提问作者MtnPavlas
相关产品推荐
相关产品推荐

