问题与CNAME和虚拟主机

我正在使用Apache,我有一个CNAME的DNSlogging

指向sub1.domain1.com的sub2.sub1.domain1.com

我有一个DNSlogging

指向IP的sub1.domain1.com。

然后在我的httpd.conf文件中有:

<VirtualHost *:80> ServerName www.domain1.com DocumentRoot /domain1/www </VirtualHost> <VirtualHost *:80> ServerName sub1.domain.com DocumentRoot /domain1/sub1/www </VirtualHost> 

然而,我似乎错过了一些东西,当你访问sub2.sub1.domain1.com,它显示你的网页domain1.com。 当您访问sub1.domain1.com时,它显示sub1的正确页面。

虽然你有CNAMElogging指向sub2.sub1.domain1.com到正确的服务器,Apache服务器可能服务于多个网站。

当一个http请求进来时,apache根据ServerName检查URL来确定哪个网站可以发布。 如果有任何其他的名字指向同一个网站,你把它们放在ServerAlias中

在你的httpd.conf中,你必须为sub2.sub1.domain1.com添加ServerAlias

 <VirtualHost *:80> ServerName sub1.domain.com ServerAlias sub2.sub1.domain1.com DocumentRoot /domain1/sub1/www </VirtualHost> 

此外,httpd.conf中的第一个VirtualHost声明被用作默认值 。 当一个http请求进来,并且不匹配任何ServerNameServerAlias时默认的站点被发送出去。