在apache htaccess rewrite / redirect中传递所有其他查询参数?

时间:2016-09-02 18:49:36

标签: regex apache .htaccess redirect url-rewriting

我希望匹配某些查询参数,并重定向到某个新网址,但不会丢失所有其他查询参数(例如utm等)

例如,如果请求是

home.com/request?a=1&utm=stuff

我想重定向到

home/com/target?utm=stuff

不是

home/com/target?&utm=stuff

我知道$ 1 $ 2等参考重写规则的组, %1%2表示查询字符串的组。

以下

RewriteCond %{REQUEST_URI} ^request$
Rewritecond %{QUERY_STRING} ^(.)a=1(.*)$
RewriteRule .* /?%1%2 [L,R=302]

减去a=1,但不处理&巧妙。

1 个答案:

答案 0 :(得分:1)

您可以使用此重定向规则:

RewriteCond %{QUERY_STRING} ^(.*&)?a=1(?:&(.*))?$ [NC]
RewriteRule ^request/?$ /target?%1%2 [L,NE,R=302]