我在一台服务器上托管了两个域名。我在/etc/httpd/conf.d
:first.conf
和中创建了两个文件second.conf
。每个文件都有相同的内容:
NameVirtualHost *
<VirtualHost *>
ServerName first.example.com
DocumentRoot /home/me/first
</VirtualHost>
完成后我遇到了冲突。只有第二个文件有效。所有请求都转到/home/me/second
。无论我使用哪个域。如何解决?我做错了什么?
附言:对我来说,拥有多个单独的文件非常重要,每个域名一个。我应该能够轻松删除其中任何一个,而不会影响其他文件。我不想触碰默认的 apache 配置。我认为不用 也可以做同样的事情VirtualHost
,但需要其他一些指令。我只是记不住它的名字。:(
答案1
将 namevirtualhost 放入另一个配置文件中,如 apache(2).conf 或 httpd.conf(取决于您的发行版)。在 debian/ubuntu 上,正确的位置应该是 apache2.conf 的末尾。
在整个配置中,您只需要一次 nameVirtualHost。
答案2
尝试NameVirtualHost
在second.conf中删除
答案3
将 nameVirutual host 移出站点配置文件。它属于服务器配置(apache.conf 或 http.conf)。
只是提醒您。第一个站点将接收虚拟主机未涵盖的任何请求。这是您的默认服务器。您可能需要配置一个额外的站点来处理这种情况。
答案4
您如何通过主机名访问服务器?
此外,您的文件显示first.example.com,我假设第二个文件有second.example.com。你能发布第二个文件的完整内容吗?