在.htaccess中,重定向除一个以外的所有域

时间:2012-06-15 23:17:22

标签: .htaccess mod-rewrite redirect

我的服务器上有多个域名。我想将它们全部重定向到一个(example.net)。

我的.htaccess:

RewriteEngine on 
RewriteRule ^(.*)$ http://www.example.net/$1 [R=301,L]

我将服务器上的所有网址重定向到一个主域,但该域也会重定向到自己。因此,www.example.net返回301 Moved Permanently并重定向回自身。我被告知这对SEO不利。我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:27)

您需要添加 Rewritecond ,以防止在您已经位于所需的域时重定向。如果你谷歌它,在线有大量的例子,或者看到RewriteCond section of Apache’s mod_rewrite documentation

您正在寻找的是:

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

答案 1 :(得分:0)

小记: 谢谢TRiG,但我必须删除一个斜杠才能使其正常工作(因为它在域名后添加了两个斜杠)。这对我有用:

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