Apache 虚拟主机的奇怪问题

Apache 虚拟主机的奇怪问题

我的机器上的虚拟主机遇到了一个奇怪的问题。

我已经为我的域名设置了一个(我们称之为 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 的虚拟主机的不同概念以及它们各自的优点和缺点。

相关内容