这一直困扰着我,我从来没有搞清楚为什么Apache这样做,我总是诉诸于mod_vhost插件来解决这个问题。
基本上,我有2个虚拟主机在启用网站(Ubuntu服务器),其内容:
<VirtualHost *> DocumentRoot "/var/www/vhosta.domain.com/" ServerName vhosta.domain.com <Directory "/var/www/vhosta.domain.com/"> allow from all Options +Indexes </Directory> </VirtualHost>
和
<VirtualHost *> DocumentRoot "/var/www/vhostb.domain.com/" ServerName vhostb.domain.com <Directory "/var/www/vhostb.domain.com/"> allow from all Options +Indexes </Directory> </VirtualHost>
现在逻辑上这两个可以单独访问,但是,似乎所有的请求到我的服务器,无论我定义什么样的虚拟主机,这将是vhosta.domain.com。
我错过了一些非常明显的东西吗? 我真的不知道为什么这样做..
谢谢
你缺less一个NameVirtualhost; 然而:
VirtualHost *:80代替。 以下是正确的方法:
NameVirtualHost *:80 <VirtualHost *:80> Servername vhosta </VirtualHost> <VirtualHost *:80> Servername vhostb </VirtualHost>
在你的虚拟主机定义之前,你需要像这样的东西:
NameVirtualHost *:80
你正在做基于名字的虚拟主机。 请参阅这里的文档:
http://httpd.apache.org/docs/2.2/mod/core.html#namevirtualhost