如何编写.htaccess rewrite规则提取商品ID重定向到亚马逊联盟链接
解决方案
前提依赖
首先确保你的Apache服务器已启用mod_rewrite模块,这是重写规则生效的基础。
完整.htaccess规则
RewriteEngine On # 匹配查询字符串中的redirectTo参数,捕获商品编码 RewriteCond %{QUERY_STRING} redirectTo=([A-Z0-9]+) [NC] # 重定向到亚马逊联盟链接,丢弃原查询参数 RewriteRule ^$ https://www.amazon.com/dp/%1?tag=mytag-21&linkCode=ogi&th=1&psc=1 [L,R=302,QSD]
规则说明
- 正则匹配逻辑:
redirectTo=([A-Z0-9]+)会从原链接的查询参数中匹配redirectTo后面的商品编码,括号为捕获组,将匹配到的编码内容暂存供后续引用。如果你的商品编码包含小写字母,可以将正则调整为redirectTo=([a-zA-Z0-9]+)。 %1:引用前一步捕获到的商品编码,自动填充到亚马逊链接的对应位置。- 标记说明:
[NC]:匹配时不区分大小写,可根据你的商品编码格式选择是否保留[R=302]:表示临时重定向,确认规则无误后如果需要永久重定向可以改为R=301,便于搜索引擎收录[QSD]:丢弃原请求的查询参数,避免原链接的?redirectTo=xxx等参数拼接在目标链接后[L]:匹配到本条规则后不再执行后续的重写规则,避免冲突
特殊场景调整
如果你的原链接不是根路径,而是类似https://example.com/go/?redirectTo=xxx的路径,只需要将RewriteRule ^$修改为RewriteRule ^go/?$即可。
内容的提问来源于stack exchange,提问作者natas
相关产品推荐
相关产品推荐

