我设置了一个子域名 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 服务。