我有两个虚拟主机的以下apache配置:
<VirtualHost *:80>
DocumentRoot /var/www/html/wordpress
ServerName www.newsite.com
</VirtualHost>
<VirtualHost *:80>
ServerName oldsite.com
RedirectPermanent / http://www.newsite.com
</VirtualHost>
我不在httpd.conf中有以下指令,或者其中任何一个包含:
NameVirtualHost *:80
而且,我正在使用Apache 2.2(我知道这个指令在2.4中已弃用)。
$ httpd -V
Server version: Apache/2.2.29 (Unix)
从oldsite.com到www.newsite.com的重定向工作正常,但我的理解是,如果没有NameVirtualHost指令,此配置不应。
我的理解是否正确,如果是这样,还有什么其他可能的原因可以使这项工作成功?
答案 0 :(得分:0)
第二个配置基本上被忽略了,因为你没有设置NameVirtualHost,因此它实际上覆盖了与第一个相同的请求。
因此,即使ServerName可能不匹配,第一个配置也是唯一使用的配置。
这可以通过重定向到www.newsite.com(设置为第一个配置)而不是www.example.com(在第二个配置中设置,并且在使用NameVirtualHost时使用)来看出)。
我不知道为什么你说这个工作正常,因为通过该配置,我认为你想将oldsite.com重定向到www.example.com?