我正在使用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请求进来,并且不匹配任何ServerName和ServerAlias时 , 默认的站点被发送出去。