编辑.htaccess将多个域重定向到一个域

时间:2014-02-17 16:09:50

标签: .htaccess mod-rewrite redirect

我们在将网站路由到新域名时遇到问题。我们共有3个域名。

domain1.com domain2.com domain3.com

domain3.com是domain1.com和domain2.com需要指向的新域。

我们当前的.htaccess文件是设置链接,所以:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

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

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

什么有效:

domain2.com已成功重定向到domain3.com

domain3.com成功访问domain3.com

什么行不通:

domain1.com不会重定向到domain3.com

htaccess文件中必须更改哪些内容才能让domain1.com永久重定向到domain3.com?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用此代码:

RewriteEngine on

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

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]