Apache不会允许多个基于名称的虚拟主机

这是我面临的问题:我已经添加了多个虚拟主机(基于名称)到Apache,但仍然只有一个被加载。

例如,我有两个不同内容的域。

Site1域 – > Site1内容
Site2域名 – > Site1内容以及..

我已经在httpdconfiguration文件中包含了httpd-vhosts文件,并且我已经对它进行了编辑,以匹配要求我在文档上做的事情,但仍然只有一个文件夹被提供。

这里是我的httpd-vhosts文件,我假设的httpd文件不需要发布,但如果需要,我应该:

NameVirtualHost * <Directory "C:/www/"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <VirtualHost *> ServerName www.*****.com DocumentRoot "C:\www*****" </VirtualHost> <VirtualHost *> ServerName ****.co.cc DocumentRoot "C:\www\****" </VirtualHost> 

当然,我删除了不必要的评论和我的域名(私人原因)。 噢,我的服务器托pipe在Windows Server 2008 Standard上

首先,你可以检查日志文件的错误,当你启动Apache? 它可能是抱怨,如果它会提供非常有用的信息..

其次,你是否在SSL方面做了类似的改变? MOD_SSL是通过一个不同的configuration文件处理的,如果你试图访问端口443上的东西,你不会得到所有不同的网站的工作。

在它的表面上,你的configuration似乎很好。 你如何访问这些网站? 你是否在httpd.conf底部包含了虚拟主机configuration?

例如,我有两个不同内容的域。

Site1域 – > Site1内容Site2域 – > Site1内容以及..

那是哪个呢? 两个域的内容不同或内容相同?

如果它的内容相同,那么正确的方法是使用serveralias选项:

 <VirtualHost *> ServerName www.firstdomain.com serveralias firstdomain.com www.seconddomain.com seconddomain.com DocumentRoot "C:\www*****" </VirtualHost> 

现在,您可以按照您所尝试的方式投放相同的内容。 您只需要为域号2设置正确的文档根。在您的示例中,doc根包含一个反斜杠,如果想法提供与域1相同的内容,则不应该包含反斜杠。