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

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

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

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

域 -> Site1 内容
Site2 域 -> Site1 内容。

我已将 httpd-vhosts 文件包含在 httpd 配置文件中,并对其进行了编辑以匹配其文档中要求我执行的操作,但仍然只提供一个内容文件夹。

这是我的 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>

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

答案1

首先,启动 Apache 时,您可以检查日志文件中是否有错误吗?它可能会发出抱怨,如果确实如此,它将提供非常有用的信息。

其次,您是否对 SSL 方面做了类似的更改?MOD_SSL 通过不同的配置文件处理,如果您尝试通过端口 443 访问这些方面,您将无法让所有不同的站点正常运行。


答案2

从表面上看,您的配置似乎没问题。您如何访问这些网站?您是否在 httpd.conf 的底部包含了虚拟主机配置?

答案3

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

Site1 域名 -> Site1 内容 Site2 域名 -> Site1 内容同样..

那么究竟是哪一个呢?两个域名的内容不同还是相同?

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

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

现在,您可以按照自己尝试的方式提供相同的内容。您只需为域 2 设置正确的文档根目录即可。在您的示例中,文档根目录包含反斜杠,如果要提供与域 1 相同的内容,则不应该包含反斜杠。

相关内容