2013-03-10 38 views
0

我目前正在浏览重定向教程,并已变得有点困惑。 以下是应该将所有请求重定向到当前域到一个新的域。了解使用HTTP_HOST重定向

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

但是,HTTP_HOST的目的是什么?它包含什么?对我来说HTTP_HOST包含当前的主机名? (old_domain.com)因此,我对上述规则的理解是,它正在测试一个包含旧域的字符串,然后又是旧域? old_domain.com/old_domain.com

不是吗?

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

另一个例子,以帮助了解如何将您重定向到mysite.com的请求(其次是没有别的,所以基本上到索引页面请求)mysite2.com使用HTTP_HOST

谢谢。

回答

1

条件是检查提供的主机%{HTTP_HOST}与旧的主机。因此,如果请求通过主机“old_domain.com”进入服务器,则应运行下一条规则。如果主机是其他任何东西,即使是www.old_domain.com,那么下一个规则也会被跳过。

换言之,%{HTTP_HOST}是用户传递给服务器的内容。该条件会检查用户是否再次提供了您已编写规则的内容。