为什么这个配置会在文档根目录之前显示我的目录和文件?

为什么这个配置会在文档根目录之前显示我的目录和文件?
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias example.com
    DocumentRoot /var/www/example/example

当我在浏览器上打开网站(如 www.example.com)时,它会列出 /var/www/example 目录下的所有文件,而不是页面!

但如果我使用ServerAlias www.example.com它就可以正常工作,只是想知道可能是什么问题?

答案1

当 Apache httpd 在 HTTP/1.1Host标头中收到不VirtualHost存在或Host根本没有标头的主机名时,它将提供VirtualHost其配置中遇到的第一个主机名。

www.example.com目前尚未在您的代码片段中配置,因此 Apache httpd 将提供VirtualHost可能具有的默认服务DocumentRoot /var/www/

如果你想知道细节,你应该阅读虚拟主机匹配的深入讨论

相关内容