<-
Apache > HTTP Server > Documentation > Version 2.0

Таможенные Ошибочные Ответы

дополнительные функциональные возможности позволяют webmasters формировать ответ Apacheа к некоторой ошибке или проблеме.

настраиваемые ответы могут быть определены, чтобы быть активизированными в случае обнаруженной ошибки сервера или проблемы.

если подлинник разбивает и производит "500 Ошибочных ответов" Сервера, то этот ответ может быть заменен или с некоторым friendlier текстом или переназначением к другому URL (местный или внешний).

top

Behavior

Старое Поведение

NCSA httpd 1.3 возвратил бы некоторое скучное старое сообщение ошибки/проблемы, которое часто будет бессмысленно пользователю, и не обеспечило бы никаких средств заготовки леса признаков, которые вызвали это.

Новое Поведение

серверу можно спросить:

  1. показать некоторый другой текст, вместо NCSA трудно закодировал сообщения, или
  2. переадресовать к местному URL, или
  3. переадресовать к внешнему URL.

переадресовывание к другому URL может быть полезным, но только если немного информации можно передать, который может тогда использоваться, чтобы объяснить и/или регистрировать ошибку/проблему более ясно.

чтобы достигать этого, Apache определит новые CGI-подобные переменные окружающей среды:

REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, image/jpeg
REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05 9000/712)
REDIRECT_PATH=.:/bin:/usr/local/bin:/etc
REDIRECT_QUERY_STRING=
REDIRECT_REMOTE_ADDR=121.345.78.123
REDIRECT_REMOTE_HOST=ooh.ahhh.com
REDIRECT_SERVER_NAME=crash.bang.edu
REDIRECT_SERVER_PORT=80
REDIRECT_SERVER_SOFTWARE=Apache/0.8.15
REDIRECT_URL=/cgi-bin/buggy.pl

отметить REDIRECT_ приставка.

по крайней мере REDIRECT_URL и REDIRECT_QUERY_STRING будет передаваться к новому URL (предполагающий, что это - cgi-подлинник или cgi-включение). Другие переменные будут существовать, только если они существовали до ошибки/проблемы. ни один из них будет установлен если ваш ErrorDocument является внешний переадресовать (что - нибудь начинающееся со схемы называет http: , даже если это именует того же самого хозяина как сервер).

top

Configuration

использование ErrorDocument позволяется для .htaccess файлов когда AllowOverride установлен соответственно.

вот - некоторые примеры...

ErrorDocument 500 /cgi-bin/crash-recover
ErrorDocument 500 "Sorry, our script crashed. Oh dear"
ErrorDocument 500 http://xxx/
ErrorDocument 404 /Lame_excuses/not_found.html
ErrorDocument 401 /Subscription/how_to_subscribe.html

синтаксис,

ErrorDocument <3-digit-code> <action>

где действие может быть,

  1. текст, который будет показан. Приставка текст с цитатой ("). Независимо от того, что следует, цитата показана. отметить: (") приставка не показана.
  2. внешний URL, чтобы переадресовать к.
  3. местный URL, чтобы переадресовать к.
top

Custom Error Responses and Redirects

поведение Apacheа к переадресованным URL было изменено так, чтобы дополнительные переменные окружающей среды были доступны для script/server-include.

старое поведение

Стандартные вары CGI были сделаны доступный к подлиннику, который был переадресован к. Никакой признак того, куда переназначение прибыло от, не обеспечивался.

новое поведение

новая партия переменных окружающей среды будет калиброваться для использования подлинником, который был переадресован к. Каждая новая переменная будет иметь приставку REDIRECT_ . REDIRECT_ переменные окружающей среды созданы от переменных окружающей среды CGI, которые существовали до переадресовывания, они переименованы с a REDIRECT_ приставка, то есть. , HTTP_USER_AGENT становится REDIRECT_HTTP_USER_AGENT . в дополнение к этим новым переменным, определит Apache REDIRECT_URL и REDIRECT_STATUS помогать подлиннику прослеживать его происхождение. И оригинальный URL и URL, переадресовываемый к могут быть загружены регистрация доступа.

если ErrorDocument определяет, что местный житель переадресовывает к подлиннику CGI, подлинник должен включить " Status: "область удара головой в ее продукции, чтобы гарантировать распространение полностью назад клиенту ошибочного условия, которое заставило это быть призванным. Например, Perl ErrorDocument подлинник мог бы включить следующее:

...
print "Content-type: text/html\n";
printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
...

если подлинник посвящен обработке специфического ошибочного условия, типа 404 Not Found , это может использовать определенный кодекс и ошибочный текст вместо этого.

отметить что подлинник должен испустить соответствующее Status: удар головой (, типа 302 Found ), если ответ содержит a Location: удар головой (чтобы выпускать сторону клиента переадресовывают). Иначе Location: удар головой не может иметь никакого эффекта.