Apache 虚拟主机不工作

Apache 虚拟主机不工作

编辑:我能够让它工作。httpd.conf 中有一个 VirtualHost 条目,它影响了我的 vhosts.conf 文件中的虚拟主机。

我正在尝试设置 CentOS 服务器并为其配置两个虚拟主机。此服务器将用相同的设置替换 Solaris 服务器。在 Solaris(当前)服务器上,虚拟主机可以工作,但在新服务器上,无论发送了什么(修改 hosts 文件),都会调用第一个虚拟主机。

SSL 虚拟主机工作正常。

我尝试添加“NameVirtualHost *:80”,但得到

[2011 年 6 月 30 日星期四 14:43:38] [警告]默认VirtualHost 在端口 80 上重叠,第一个优先 [2011 年 6 月 30 日星期四 14:43:38] [警告] NameVirtualHost *:80 没有 VirtualHosts

有人有什么想法吗?

编辑:我忘了发布我的配置。

NameVirtualHost *:80
...
<VirtualHost *:80>
DocumentRoot "/var/www/html/domain1"
ServerName domain1
ServerAlias www.domain1

AllowOverride 所有
选项 无
顺序 允许、拒绝
允许所有

DirectoryIndex index.html index.php
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/html/domain2"
ServerName domain2
ServerAlias www.domain2

AllowOverride 所有
选项 无
顺序 允许、拒绝
允许所有

DirectoryIndex index.html index.php
</VirtualHost>

答案1

删除 NameVirtualHost *:80 或者注释掉 #NameVirtualHost

答案2

发布配置对您来说真的很有帮助。也就是说,您的 vhost 定义可能如下:

<VirtualHost _default_:80>

当你的NameVirtualHost *:80块需要匹配你的VirtualHost定义时。试试这个:

<VirtualHost *:80>

答案3

听起来您已经将两个 VirtualHosts 定义为:

<VirtualHost _default_:80>
    ServerName www.mysite.com

...
</VirtualHost>

<VirtualHost _default_:80>
    ServerName www.myothersite.com

...
</VirtualHost>

这不是您想要的,您需要两个在 *:80 上监听的 VirtualHost,并使用基于名称的虚拟主机,如下所示:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.mysite.com

...
</VirtualHost>

<VirtualHost *:80>
    ServerName www.myothersite.com

...
</VirtualHost>

_default_:80 定义告诉基于名称的虚拟主机在没有其他 VirtualHost 通过名称或唯一 IP:端口对匹配时使用此 VirtualHost。

相关内容