|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Michael Ivanovsky 2:5020/400 28 Mar 2001 20:08:15 To : All Subject : Perl - .htaccess - Обработка ошибок хттп-сервера (404, 500 и т.п.) --------------------------------------------------------------------------------
Доброе время суток!
Есть одна проблема: на своём сервере (www.amrita.ru) я использую .htaccess,
заполненный к примеру так:
------------------.htaccess
ErrorDocument 404 /cgi-bin/error.pl
------------------.htaccess
Для обработки ошибок написал скрипт примерно такого содержания:
-----------------cgi-bin/error.pl
#!/usr/bin/perl
$| = 1;
print "Content-type: text/html\n\n";
&showerror;
sub showerror {
open(SENDMAIL, "|/usr/sbin/sendmail -oi -t -obq") or print "Hе могу
отправить сообщение: $!\n";
print SENDMAIL <<"EOF";
From: $frommessage
To: Webmaster <webmaster\@amrita.ru>
Subject: =?Windows-1251?B?==?=Ошибка на сайте
Mime-Version: 1.0
Content-Type: text/plain; charset=Windows-1251
Ошибка на сайте!
-------
REQUEST_URI $ENV{REQUEST_URI}
REMOTE_ADDR $ENV{REMOTE_ADDR}
HTTP_USER_AGENT $ENV{HTTP_USER_AGENT}
------
EOF
close(SENDMAIL) or print "Hе могу отправить сообщение: $!\n";
print "<html>\n";
print "<head><title>Ошибка!</title></head>\n";
print "<body bgcolor=white text=black link=blue vlink=blue
background=$backgif>\n";
print "<font face=arial><center>\n";
print "<h3>Ошибка!</h3>\n";
print "<blockquote>\n";
print "$ENV{REQUEST_URI} <br>\n";
print "</blockquote>\n";
print "</center>";
print "</font></body></html>\n";
exit;
}
-----------------cgi-bin/error.pl
Скрипт, соответственно, выводит сообщение об ошибке пользователю, а мне
отправляется нежное письмо об этой жуткой трагедии.
Так вот, просто error.pl отлично вызывается и работает (и экран выводит и
письмо шлёт).
Просто страница, если написать в .htaccess ErrorDocument 404 /error404.htm
тоже отлично выводится.
А вот скрипт, при отсутствии запрашиваемого ресурса очень странно работает:
письмо по почте отправляется, но экран выводится стандартный. Что за чёрт?
Может кто делал подобное и сможет подсказать?
И попутно второй вопрос: как из скрипта получить код етой самой ошибки (в
данном случае 404) (не передавая его в качестве параметра при вызове из
.htaccess
Всем спасибо за внимание и участие.
--
Ивановский Михаил
www.amrita.ru
iv@amrita.ru
ICQ 70775040
--- ifmail v.2.15dev5
* Origin: OOO "SKB Amrita" (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/6577ab3495ca.html, оценка из 5, голосов 10
|