使用完整查询字符串将一个域重定向到另一个域

时间:2011-08-12 21:09:49

标签: apache .htaccess redirect

我有2个域名.com和.net。

我想使用完整的网址将.net重定向到.com域名,因此只需更改域名。例如:

如果用户访问:

http://www.example.net/images/myImage.png  he gets redirected (using 301 redirect) to http://www.example.com/images/myImage.png.
http://www.example.net/images goes to http://www.example.com/images
http://www.example.net/index.php?att=1&att=2 goes to http://www.example.com/index.php?att=1&att=2

我试过了:

 RewriteEngine on
 RewriteCond %{HTTP_HOST} !.com$
 RewriteRule /(.*) http://www.example.com/%{REQUEST_URI}$1 [L,R=301] 

但如果未设置查询字符串(?att = 1& att2 = 3 ...),则直接转到www.example.com

这甚至可能吗?

1 个答案:

答案 0 :(得分:4)

这对我来说总是有用的:

RewriteEngine On
RewriteCond %{HTTP_HOST} !.com$
RewriteRule .* http://www.example.com%{REQUEST_URI} [L,R=301]

或者,如果您愿意:

RewriteEngine On
RewriteCond %{HTTP_HOST} !.com$
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

如果仍然没有 - 尝试添加QSA标志(但它应该正常工作):

RewriteRule ^(.*)$ http://www.example.com/$1 [QSA,L,R=301]