首页 > 解决方案 > .htaccess 附属链接的重写规则

问题描述

我有很多这种类型的链接:

https://example.com/?redirectTo=G04BIQ8LGG&redirect_prodid=xyz-G04BIQ8LGG

我需要重定向到亚马逊会员链接:

https://www.amazon.com/dp/G04BIQ8LGG?tag=mytag-21&linkCode=ogi&th=1&psc=1

从旧网址获取的唯一部分是产品代码(例如G04BIQ8LGG

有人可以帮助我处理 .htaccess 规则和正则表达式吗?

谢谢!

标签: .htaccessmod-rewrite

解决方案


不幸的是,不,我对正则表达式不是很好。

正则表达式与链接问题中的非常相似。但是,在这种情况下,所需的 mod_rewrite 指令本身要简单得多。

例如:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^redirectTo=([^&]+)
RewriteRule ^$ https://www.amazon.com/dp/%1?tag=mytag-21&linkCode=ogi&th=1&psc=1 [NE,R=302,L]

我已将redirectToURL 参数锚定到查询字符串的开头,因为这就是它在您的示例中的显示方式。在链接的问题中,URL 参数可以出现在查询字符串中的任何位置,因为这似乎是该问题的要求。

由于 URL 参数值用于重定向 URL 的 URL 路径,因此需要NE( noescape) 标志来防止 % 编码的 URL 参数值在生成的重定向中被双重编码。(尽管如果此 URL 参数值从未经过 % 编码,则这不是问题 - 它不一定看起来会如此。)


推荐阅读