Apache 将所有 URL 解析为默认值

Apache 将所有 URL 解析为默认值

我在基于 Debian 的发行版上使用 Apache 2.2。出于某种原因,所有 URL 都定向到默认索引。没有错误或任何其他问题。这意味着:example.domain.com 转到 domain.com。“example”可以是任何内容。在默认 Vhost 文件 (/etc/apache2/sites-available/default) 中,我添加了:

服务器名称:www.domain.com

但它仍然保持着那种奇怪的行为。请告诉我如何启用常见的默认行为。顺便说一句,我没有改变任何东西,这是自安装以来。

更新:根据 SvW 的回答,我正在寻找一种方法来强制 Apache 不接受任何 URL,只接受那些指定为 VirtualHosts 的 URL。

答案1

主要的“问题”是你有一个通配符 DNS指向您的 Web 服务器的条目,否则您将从浏览器收到“未知主机”错误。删除该条目,此操作将停止(在条目的 TTL 过期后,最多 24 小时后)。

Apache 本身将始终使用第一个 vhost 定义来回答未在其他 vhost 中定义的主机名的请求。

答案2

任何与特定 vhost 不匹配的请求都将由 Apache 发送到默认 vhost。

我推荐的解决方案是在所有“真实”虚拟主机之前创建一个默认虚拟主机。此默认虚拟主机不应与您的任何域匹配,并且应在每个请求上回复错误代码。我认为 404 是此虚拟主机的合适答案。

相关内容