我有大约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,我想?)。
答案 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.com
,b.com
,c.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]
^/?$
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
。
这会导致重定向循环