这是我面临的问题:我已经向 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 相同的内容,则不应该包含反斜杠。