htaccess RewriteRule到新域保持查询字符串

时间:2013-01-31 00:58:22

标签: .htaccess mod-rewrite

我在其他问题和答案中找到了有关此问题的帮助,但它们没有具体说明我要做的事情。

我的RewriteRules看起来像这样......

#Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain.com$[OR]
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*)$ http://newdomain.com/rd/r.php? [QSA]

我需要http://domain.com/query.php?sid=1234&pub=123456&c1=will&c2=test1&c3=12345重定向到http://newdomain.com/rd/r.php?sid=1234&pub=123456&c1=will&c2=test1&c3=12345

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

#Options +FollowSymLinks
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteCond %{HTTP_HOST} ^(www\.)?allsystemsarego.info$
RewriteRule ^(.*)$ http://affiliate.gwmtracker.com/rd/r.php?%1 [R,L]

查询字符串应该通过未触及,但如果不是,您可以如上所述明确地获取它。 %1是对包含查询字符串的第一个RewriteCond的匹配的反向引用。

我通过规则的www.部分与前导(www.)?匹配或不匹配,将原来的两个RewriteConds简化为一个。

答案 1 :(得分:0)

这是有效的代码。所有支持a link的道具!David Ravetti。

#Options +FollowSymLinks
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain.com$
RewriteRule ^query.php$ http://newdomain.com/subdir/file.php?pub=123456 [L,QSA]