18

我有大约 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

4 回答 4

37
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]
于 2013-06-29T12:12:21.747 回答
19

而不是重定向a.com, b.com,你可以这样做c.comnewdomain.com

重定向所有不是 newdomain.comhttp://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在那里进行了更详细的解释。

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

于 2014-02-24T15:35:07.920 回答
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]

好重定向!

于 2016-10-08T08:14:09.920 回答
-1
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=permanent,L]

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

确保http://www.newdomain.com不包含在RewriteCond.

这将导致重定向循环

更多信息

于 2013-06-28T13:14:12.583 回答