首页 > 解决方案 > 如果请求标头格式错误,则不处理 Apache 虚拟主机

问题描述

我有 Apache/2.4.46 (Ubuntu) 配置了两个虚拟主机。假设默认(第一个)虚拟主机是www.example.com,另一个是 beta.example.com。如果我使用格式错误的标头向后者发出请求,例如

 curl -H 'Content-Length: 0' -H 'Content-Length: 0' https://beta.example.com/

400 Bad Request我将按预期获得带有标题的 Apache 错误页面。但是,页面中的地址行有Apache/2.4.46 (Ubuntu) Server at www.example.com Port 443而不是预期的 beta.example.com。

我的假设是在处理虚拟主机之前检查标头的有效性,并且由于标头不正确,因此永远不会处理虚拟主机并使用默认值。是这样吗?如果是,此行为在哪里配置,有没有办法在错误消息中显示正确的服务器地址?

编辑:请参阅此 Github repo for Dockerfile 以及如何复制问题的说明。

标签: apachevirtualhosthttp-status-code-400

解决方案


推荐阅读