将多个域重定向到一个域(之前有或没有www)

时间:2013-06-28 13:05:08

标签: .htaccess redirect web http-status-code-301 multiple-domains

我有大约18个需要重定向到新域名的域名。它必须有或没有www前置。

我试过这个:

<IfModule mod_rewrite.c>
    RewriteEngine on 
    Rewritecond %{HTTP_HOST} !^www\.domain\.com
    RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
</IfModule>

这给了我一个重定向循环(以前只能使用www,我想?)。

4 个答案:

答案 0 :(得分:33)

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

这会将您的所有18个域名重定向到您的新单域www.newdomain.com 否则,如果每个域位于单独的主机

,则可以使用以下代码重定向
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=permanent,L]

答案 1 :(得分:18)

而不是将a.comb.comc.com重定向到newdomain.com,您可以这样做:

newdomain.com的所有内容重定向到http://www.newdomain.com

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

归功于:http://www.raramuridesign.com/blog/83-dev-htaccess-redirect-a-domain-or-multiple-domains.html,其中详细解释了这一点。

我尝试了一个客户端项目,它就像一个魅力。

答案 2 :(得分:2)

经过几天翻找SO和其他主持人的指示后,我的经历令人失望。但是,我挑选了所有这些中最好的工作部分并产生以下结果:

RewriteEngine On
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} ^www\.domain3\.com$ [OR]
RewriteCond %{HTTP_HOST} ^domain3\.com$
RewriteRule ^/?$ "http\:\/\/www\.domain\.com\/" [R=301,L]
  • 以上格式也是根据cPanel在GUI中完成的重定向方式。
  • www的重定向。版本和非www。域名版本是其他解决方案的问题之一(至少我试过它们!)无法解决它。
  • 请注意^/?$
  • 中的RewriteRule

如果您想将主域名的www版本重定向到非www版本,那么最后两行应该是这样的:

RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteRule ^/?$ "http\:\/\/domain\.com\/" [R=301,L]

良好的重定向!

答案 3 :(得分:-1)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=permanent,L]

^domain.com解决了WWW的问题,因此所有子域现在都将重定向。

确保http://www.newdomain.com中未包含RewriteCond

这会导致重定向循环

More info