如何使Apache返回400错误的自定义页面格式错误的主机头?

我想我所要求的有点难以理解,所以我正在努力简化它。

我需要我的服务器有一个自定义的400错误页面,当它收到一个格式错误的主机头的请求。

我最想要的是ErrorDocument 400 \somepage.php

我可以通过访问一个页面,如http:\\myserver\bla%bla ,生成400错误,这将会去我的脚本罚款。 同样,我可以将\somepage.php部分更改为Test text ,Apache将返回该文本。

但是,如果400错误是由于主机头格式错误造成的,它将使用文本而不是网页。

任何人都可以解释这一点,并给我一个工作的解决scheme之前,我把我所有的头发? (已经失去了很多这个!)。

  • haproxy作为负载平衡器和Nginx的networking服务器?
  • 使用嵌套位置正则expression式在指定位置添加代理标头
  • 为什么我的局域网说“身份不明的networking”? (帮助设置服务器体系结构)
  • 什么原因导致一个400错误的请求错误为null(“”),为什么我们的nginx日志有这么多?
  • 我如何禁用Web服务器上的PHP的安全模式?
  • 虚拟主机 - >服务器 - >全部放在我的腿上..帮助!
  • One Solution collect form web for “如何使Apache返回400错误的自定义页面格式错误的主机头?”

    尝试了很多事情后,事实certificate这是不可能的。

    我在HTTPD的Bug Tracker上打开了一张票 – 这个票是由Will not Fixclosures的。

    他们说:

    标记为wontfix,当请求格式不正确时,服务器不愿意做进一步的处理来为文件系统提供一个自定义的errordocument(你的错误页面应该告诉你一个recursion400遇到了)

    在我看来,这不是很好 – 我知道这是默认的操作,但是,为什么不让用户使用不同的页面,如果他们愿意的话。

    坦率地说,它应该以这种方式工作,但是,如果有人提出了涉及任何其他技术(代理,重写/类似)的答案,我会很高兴看到它,并可能给出答案标记。


    编辑

    最后,我发现可以用Nginx和一个自定义指令来redirect400页。 我不明白为什么Apache Devs不会承认这一点,但是,Nginx做得很好。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.