Apache:返回404错误而不是500错误

时间:2009-06-18 17:19:12

标签: apache http-status-code-404 error-reporting

在apache中,每当我收到500错误时,我都想返回404错误。

这是一个非常奇怪的用例,我知道,但我想知道它是否可能。

我发现了这个

http://www.4webhelp.net/tutorials/misc/errors.php

这让我相信你可以改变不同错误发生的事情。像这样的东西会很棒

ErrorDocument 404 /cgi-bin/error404.cgi

ErrorDocument 500 /cgi-bin/error404.cgi

正如文章所建议的,但我的Ubuntu安装上似乎没有error404.cgi。我知道在哪里可以得到它,或者替代解决方案吗?

2 个答案:

答案 0 :(得分:1)

我知道这不能回答你的问题,但你确定你真的想要这样做吗? 500错误和404是非常不同的东西意味着用于不同的目的。您告诉用户他们拥有的URL是错误的,实际上它很可能是您的应用程序/服务器的临时问题。你为什么要这样做,而不是告诉用户有一个临时问题,他们应该稍后再试?或者换句话说,为什么不只是有一个自定义500错误页面?

答案 1 :(得分:0)

您必须创建error404.cgi。转到/ usr / lib / cgi-bin,然后创建一个名为error404.cgi的文件,它应该是Perl(默认),或者如果启用了Python,则可以使用其中任何一个。如果您不知道Python或Perl,那么下面是一个适合您的基本Perl脚本:(您可以从我的网站下载脚本cwarren.uuuq.com/downloads/perl/404.pl

#!/usr/bin/perl
use strict;
print "<html>";
print "<head>";
print "<title>404 ERROR!</title>";
print "</head>";
print "<body>";
print "<h1>Sorry for the broken link, but this page is not here!</h1>";
print "<br><br>";
print "<a href=\"javascript:history.go(-1)\">Click here to go back to the previous page.</a>";
exit(0);

另一种选择是将链接更改为/var/www/404.html或其他内容。