子域名接管了 Apache 中的“正常”域名

子域名接管了 Apache 中的“正常”域名

我设置了一个子域名 test.example.com 并让它运行,但现在当我访问 example.com 时,它指向 test.example.com 的目录。换句话说,它不是指向 /var/www/html,而是指向 /var/www/test

除了在子域名的最底部添加这段内容外,我没有改变 httpd.conf:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.test.example.com
    ServerAlias test.example.com
    DocumentRoot "/var/www/test/"
</VirtualHost>

我该如何修复 httpd.conf 以便正常域指向 /var/www/html 并且子域继续指向 /var/www/test ?

谢谢!

答案1

因为使用虚拟主机时,“主主机会消失”。请参阅http://httpd.apache.org/docs/2.2/vhosts/name-based.html,特别是“主机消失”这条提示。

因此,就您而言,只需复制 VirtualHost 容器并将其配置为 ServerName 为 www.example.com 且 DocumentRoot 为 /var/www/html 。

答案2

如果这是您配置的唯一 vhost,那么这是预期行为。Apache 将提供请求的域或默认域。如果没有明确的默认/catch-all 域,则将提供 apache 处理的第一个 vhost。

如果你想提供 example.com,你需要为其创建一个 vhost

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot "/var/www/"
</VirtualHost>

然后重新启动 httpd 服务。

相关内容