301将包括查询字符串在内的所有页面重定向到新域的主页面

时间:2013-10-16 08:41:28

标签: php regex apache .htaccess mod-rewrite

我正在尝试将所有网址(包括带有查询字符串的网址)重定向到新域上的一个网页。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com$ [NC]
RewriteRule ^(.*)$ "http://www.domain2.com/" [R=301,L]

问题是这不会从URL中删除查询字符串。 它重定向

domain1.com/?PageAction=VIEWPROD&ProdID=57&HS=1

domain2.com/?PageAction=VIEWPROD&ProdID=57&HS=1

而不是

domain2.com/

1 个答案:

答案 0 :(得分:2)

使用此规则从结果URL中删除查询字符串:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com$ [NC]
RewriteRule ^ http://www.domain2.com/? [R=301,L]

?的末尾注意http://www.domain2.com/?,以删除原始网址中的任何现有查询字符串。

参考:Apache mod_rewrite Introduction