我的机器上的虚拟主机遇到了一个奇怪的问题。
我已经为我的域名设置了一个(我们称之为 domain1.com),以接受端口 80 上的连接,其文档根目录是 /var/www/websites/domain1/
现在,当我访问 domain1.com 时,该方法可以工作,但是现在如果我访问机器的 IP,而不是访问默认文档根目录 (/var/www/),则会显示 domain1.com 的文档根目录 (/var/www/websites/domain1/)
我正在运行 centos5 32 位和 apache2
我希望这是有道理的:p
答案1
我记得,只要你启用虚拟主机,第一个虚拟主机就会接管一些默认配置。例如,ServerName 和 DocumentRoot 会被覆盖。
只需在配置的开头添加另一个 vhost,并设置与之前相同的属性:
<VirtualHost *:80>
ServerName some.example.com
DocumentRoot /var/www
</VirtualHost>
<VirtualHost *:80>
...
</VirtualHost>
编辑:
我刚刚看了你的httpd.conf
因为我认为你想使用命名虚拟主机(同一 IP 上的多个主机配置),所以你必须明确启用
NameVirtualHost *:80
然后 VirtualHost 指令应该与我的示例相同:
<VirtualHost *:80>
...
如果您不使用命名虚拟主机,那么在特定 IP 上提供的任何服务都将来自相同的虚拟主机配置。
你可能还想看看 apache vhost 文档(http://httpd.apache.org/docs/current/vhosts/index.html) 以便更熟悉基于名称和基于 IP 的虚拟主机的不同概念以及它们各自的优点和缺点。