将多个域/ URL重定向到一个规范域

时间:2011-05-11 15:33:32

标签: apache mod-rewrite redirect

我在Apache的rewrite guide上看到了如何将非www请求重定向到www请求的技巧:

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

将example.com的所有请求重定向到www.example.com。

但是如何添加我想要来自example1.com,www.example1.com,example2.com,www.example2.com等的请求重定向到www.example.com?

修改

以下是解决方案:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*) http://www.example.com/$1 [L,R,NE] 

稍微不同的RewriteRule并在'

上添加了'RewriteEngine'

1 个答案:

答案 0 :(得分:4)

  

但是如何添加我想要来自example1.com,www.example1.com,example2.com,www.example2.com等的请求重定向到www.example.com?

你已经做到了。您的重写规则指出“如果HTTP_HOST不是www.example.com(并且不是空白),请重定向到www.example.com”。

只要您的服务器设置为将其他域指向您托管www.example.com的同一目录,您就已经完成了设置。