Обработка ошибки 404 "Missing Document"
| |
|
В случае, если происходит запрос по URL, который не указывает на реальный
файл (скорее всего неправильный url или отсутствующий файл), сервер выдает
сообщение об ошибке.
Если Вы хотите, чтобы это сообщение было в стиле Вашего сервера и
предоставляло
посетителю некоторую дополнительную информацию, то Вы можете создать
html-файл, содержащий необходимую информацию, назвать его
missing.html и положить
в корень Вашего сервера (в подкаталог www).
Если Вы хотите сделать более сложную обработку, то можете сделать missing.html
как SSI, и отработать там параметры ошибочного запроса. При этом не забудьте выполнить
команду chmod u+x missing.html, иначе директивы SSI для него выполняться не будут.
Пример:
=== in missing ===
<!--#include virtual="/cgi-bin/missing.pl" -->
=== missing.pl ===
#!/usr/bin/perl
$referer = $ENV{'HTTP_REFERER'};
$request = $ENV{'SCRIPT_URL'};
if (!$request) { $request = $ENV{'REQUEST_URI'};}
print "Content-type: text/html";
if ((!($ENV{"SERVER_SOFTWARE"} =~ /rus/))) {
print ";charset=windows-1251";
}
print "\n\n";
print <<M1;
<p>
request: $request<br>
referer: $referer<br>
M1
# не забудьте перевод каретки в последней строке
Стоит упомянуть об одной особенности браузера MS Internet Explorer версии
5. Если файл missing.html (так мы его назвали в нашем случае) будет иметь
размер менее 1Кб, IE5 покажет пользователю не missing.html, а свое
собственное сообщение об ошибке 404.