将多个域重定向到一个URL

时间:2013-05-24 07:46:12

标签: .htaccess url redirect

使用.htaccess,我需要将两个域重定向到客户端的第三个URL。
将一个域重定向到另一个域没有任何问题:

RewriteCond %{HTTP_HOST} =domain1.com
RewriteCond %{HTTP_HOST} =www.domain1.com [OR]
RewriteRule ^(.*)$ http://domain2.com/$1 [R=301,L]

但如果我对多个域采用相同的方法,我最终会使用重定向循环 -

RewriteCond %{HTTP_HOST} =domain1.com
RewriteCond %{HTTP_HOST} =www.domain1.com [OR]
RewriteCond %{HTTP_HOST} =domain2.com [OR]
RewriteCond %{HTTP_HOST} =www.domain2.com [OR]
RewriteRule ^(.*)$ http://domain3.com/$1 [R=301,L]

如何设置它以使其正常工作?

1 个答案:

答案 0 :(得分:1)

这是因为即使对于domain3,最后一条规则也匹配所有内容。您应该根据条件切换重定向:

RewriteCond %{HTTP_HOST} (www.)?domain1.com [OR]
RewriteCond %{HTTP_HOST} (www.)?domain2.com
RewriteCond %{HTTP_HOST} !(www.)?domain3.com
RewriteRule ^(.*)$ http://domain3.com/$1 [R=301,L]