Apache 2.4:首先为其他虚拟主机的服务器名称加载 VirtualHost 配置

Apache 2.4:首先为其他虚拟主机的服务器名称加载 VirtualHost 配置

我对 Apache 2.4 的 VirtualHosts 有疑问。

如果我导航到 ty1.dev,我会转到 af2.dev 的网站

如果这是 Apache 2.2,我需要添加的就是NameVirtualHost *:80但在 2.4 中被忽略。

error.log 没有报告任何问题

我错过了什么?

# httpd-vhosts.conf
<VirtualHost *:80>
    ServerName af2.dev
    ServerAlias af2.dev
    ServerAdmin [email protected]
    DocumentRoot "c:/Users/Adam.Adam-PC/Sites/af2/web"
    <Directory c:/Users/Adam.Adam-PC/Sites/af2/web>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName ty1.dev
    ServerAlias ty1.dev
    ServerAdmin [email protected]
    DocumentRoot "c:/Users/Adam.Adam-PC/Sites/ty1"
    <Directory c:/Users/Adam.Adam-PC/Sites/ty1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        Require all granted
    </Directory>

</VirtualHost>

答案1

尝试将特定的 IP 和端口放入 listen 语句以及虚拟主机块中。因此输入:

listen 127.0.0.1:80

在每个虚拟主机中:

<virtualhost 127.0.0.1:80>

答案2

0 反对票

我从这里找到答案:http://alexking.org/blog/2007/11/01/apache-2-only-serves-first-virtual-host

将 2 个服务器名称放在同一个 VirtualHost 标签中,如下所示:

<VirtualHost *:80>

ServerName beta-site-1.com

DocumentRoot “/Library/WebServer/beta-site-1”

ServerName beta-site-2.com

DocumentRoot “/Library/WebServer/beta-site-2”

</VirtualHost>

由于我有两个 VirtualHost 标签块,因此我最终在第二个网站上遇到了问题。

相关内容