mod_rewrite更改查询字符串参数名称

时间:2013-02-21 14:59:31

标签: apache mod-rewrite url-rewriting query-string querystringparameter

我需要帮助编写mod重写规则来更改查询字符串参数的名称。我想更改名称,而不是值。

旧名partner 新名称a_aid

所以像这样的链接

http://domain.com/?partner=derphipster&pname=foo&plink=http%3A%2F%2Fbar.com%2Ffoo

将成为

http://domain.com/?a_aid=derphipster&pname=foo&plink=http%3A%2F%2Fbar.com%2Ffoo

我发现这篇文章但是接受的答案为OP产生了错误: mod_rewrite - old parameter name to new name

也是这篇文章,但解决方案是使用PHP。这在我的情况下不起作用: APACHE mod_rewrite change variable name in query string

我无法使用PHP,因为某些联盟会员跟踪代码会根据查询字符串创建Cookie,并且需要a_aid。因此,我尝试将partner转换为a_aid

1 个答案:

答案 0 :(得分:2)

好吧,我想我自己一起攻击它。如果你觉得它很脆弱或者可以做得更好而且我会接受你的答案

,请发一个答案
RewriteCond %{QUERY_STRING} ^(.*)partner(.*)$
RewriteRule ^(.*)$ $1?%1a_aid%2 [R=301,L]