VirtualDocumentRoot 不起作用!

VirtualDocumentRoot 不起作用!

我正在尝试让 VirtualDocumentRoot 在 Ubuntu Server 上全新安装的 apache2 中运行。

我已经将 httpd.conf 配置如下:

<VirtualHost *:80>
    ServerName thicket
    DocumentRoot /var/www
    UseCanonicalName Off
    VirtualDocumentRoot /var/www/%1/%2
</VirtualHost>

当我重新启动 apache 时,即使关联文件/目录存在(/var/www/dev/test/index.html),我也无法访问 dev.test.thicket/index.html。

当我注释掉 UseCanonicalName 和 VirtualDocumentRoot 时,我可以使用 thicket/dev/test/index.html 访问服务器

Apache 让我感到困惑和害怕。我到底做错了什么?

答案1

如果您在本地发出请求,您的 DNS 是否将“dev.test.thicket”解析为本地主机(127.0.0.1 或 ::1)?或者如果您在远程发出请求,则解析为服务器的 IP 吗?

VirtualHosts 根据 HTTP 请求的传入“Host:”标头做出服务决策,但 DNS 在该 HTTP 请求发送之前会进行单独的解析。

如果您系统的主机名是“thicket”,那么该词可能通过 /etc/hosts 文件解析为 127.0.0.1,特别是如果您将该主机名设置为操作系统安装的一部分。

您可以尝试将“dev.test.thicket 127.0.0.1”添加到您的主机文件中,仅用于测试目的。

相关内容