使用.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]
如何设置它以使其正常工作?
答案 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]