如果没有NameVirtualHost指令,apache配置如何工作?

时间:2015-10-26 03:49:22

标签: apache

我有两个虚拟主机的以下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指令,此配置不应

我的理解是否正确,如果是这样,还有什么其他可能的原因可以使这项工作成功?

1 个答案:

答案 0 :(得分:0)

第二个配置基本上被忽略了,因为你没有设置NameVirtualHost,因此它实际上覆盖了与第一个相同的请求。

因此,即使ServerName可能不匹配,第一个配置也是唯一使用的配置。

这可以通过重定向到www.newsite.com(设置为第一个配置)而不是www.example.com(在第二个配置中设置,并且在使用NameVirtualHost时使用)来看出)。

我不知道为什么你说这个工作正常,因为通过该配置,我认为你想将oldsite.com重定向到www.example.com?