附属链接的 .htaccess 重写规则

.htaccess rewrite rule for affiliate links

我有很多 link 这种类型:

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

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

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

从旧 url 中提取的唯一部分是产品代码(例如 G04BIQ8LGG

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

谢谢!

unfortunately no, I'm not very good with regex.

正则表达式与 linked question 中的非常相似。但是,在这种情况下,所需的 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]

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

由于URL参数值用于重定向URL的URL路径中,因此需要NEnoescape)标志以防止 %-encoded URL 参数值在结果重定向中被双重编码。 (虽然如果这个 URL 参数值从未被 %-encoded 这不是问题 - 它看起来不一定是这样。)