Apache: вернет 404 ошибки вместо 500 ошибок - PullRequest
3 голосов
/ 18 июня 2009

В apache я хотел бы возвращать 404 ошибки всякий раз, когда я получаю ошибку 500.

Это очень странный случай использования, я знаю, но мне интересно, возможно ли это.

Я нашел это

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

Что заставляет меня верить, что вы можете изменить то, что происходит при разных ошибках. Примерно так было бы здорово

ErrorDocument 404 /cgi-bin/error404.cgi

ErrorDocument 500 /cgi-bin/error404.cgi

Как предложено в статье, но у меня, похоже, нет ошибки 404.cgi в моей установке Ubuntu. Любая идея, где я могу получить это, или альтернативное решение?

Ответы [ 2 ]

1 голос
/ 18 июня 2009

Я знаю, что это не отвечает на ваш вопрос, но вы уверены, что действительно хотите это сделать? ошибка 500 и 404 - это разные вещи, предназначенные для разных целей. Вы говорите пользователю, что URL-адрес, который он имеет, неверен, хотя на самом деле это скорее всего временная проблема с вашим приложением / сервером. Почему вы предпочитаете делать это, а не сообщать пользователю о временной проблеме, и ему следует повторить попытку позже? Или, другими словами, почему бы просто не иметь пользовательскую страницу 500 ошибок?

0 голосов
/ 18 июня 2009

Вы должны создать error404.cgi. Перейдите в / usr / lib / cgi-bin и создайте файл с именем error404.cgi. Это должен быть либо Perl (по умолчанию), либо, если Python включен, вы можете использовать любой из них. Если вы не знаете ни Python, ни Perl, вот базовый скрипт на Perl, который должен работать для вас:

#!/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 или что-то в этом роде.

...