使用查询字符串将url重定向到另一个url

时间:2014-11-10 19:52:45

标签: regex apache .htaccess mod-rewrite redirect

我想用.htaccess重定向

http://www.site1.com/pages/?url=http://www.gooogle.com/xyz/jkjk.html

http://tracking.site2.com/s?key=123456789&url=http://www.gooogle.com/xyz/jkjk.html

RewriteEngine On
RewriteCond   %{REQUEST_URI}    ^/pages/?$
RewriteCond   %{QUERY_STRING}   ^url=(.+)$
RewriteRule   ^(.*)$ http://tracking.site2.com/s?key=123456789&url=$1  [R=301,L]

试过这个......失败了。 请帮帮我这个

2 个答案:

答案 0 :(得分:1)

您可以在server1的root .htaccess中使用此规则:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^url=([^&]+) [NC]
RewriteRule ^pages/(.*)$ http://tracking.site2.com/s?key=123456789&url=%1 [QSA,NC,NE,R=301,L]

要回复引用RewriteCond中捕获的群组,我们需要使用%1%2等代替$1$2

答案 1 :(得分:1)

如果你想要查询字符串,添加一个额外的QSA标志(查询字符串追加),如下所示:[R = 301,QSA,L]