如何配置默认虚拟主机在apache中返回404标头?


13

我知道有人问过类似的问题,但是可用的答案不是很清楚,请耐心等待。

<VirtualHost>在apache中设置了几个s之后,我想配置_default_ ServerName以便它返回404消息。即,除非在Host http标头中指定了一些明确可用的域,否则返回404。(理想情况下,比指向现在不存在的目录更直接。)

任何帮助将不胜感激。

Answers:


26

你试过了吗:

重定向404 /
错误文档404“找不到页面”

在默认的VirtualHost中?


谢谢,做到了!由于很明显我的专业知识水平很低,所以我可能会为新手添加默认服务器应该首先出现。(这花了我一段时间才能弄清楚!)
ezequiel-garzon 2011年

请注意,如果ErrorDocument指向该虚拟主机内的文件或URL,它还将返回404,从而生成内部服务器错误。
西里尔N.15年

对于所有虚拟主机都包含在单个文件中的网站,此答案将适用(Eugene Fidelin的答案更为完整)。当对带有a2ensite的每个站点使用单独的.conf文件时,我无法弄清楚如何首先加载默认(404)配置。
安德鲁·斯威夫特

Redirect 404 /足以显示默认的Apache“未找到”页面,它也可以在特定的虚拟主机中运行(有时您想为整个站点返回404,以使其从Google SERP中消失)
lucaferrario

1

这是000-default.conf的示例,如果未为Apache配置服务器名称,它将返回404错误。

<VirtualHost *:80>
  ServerName default
  Redirect 404 /
</VirtualHost>
<VirtualHost _default_:80>
  Redirect 404 /
</VirtualHost>

当所有虚拟主机都配置在一个文件中时,我可以确认第二部分可以工作(我放在第一位)。
Andrew Swift

1
最好使用503(服务不可用)而不是404,但是我怀疑在实践中它有很大的区别,监视工具通常会警告任何非200代码。
克里斯,

当我使用端口443时,它可以完美地用于http,但不适用于https。您对此有任何想法吗?
Sohail Ahmed
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.