Apache. Документация на русском


Директивы Apache
  1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16    17    18    19    20    21    22      23      24    25    26    27    28    29    30    31    32    33    34    35    36    37    38    39    40    41    42    43    44    45    46    47    48    49    50    51    52    53    54    55    56    57    58    59    60    61    62    63    64    65    66    67    68    69    70    71    72    73    74    75    76    77    78    79    80    81    82    83    84    85  
  86    87    88    89    90    91    92  
  93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    162    163    164    165  
  166    167    168    169    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    202    203    204    205    206    207    208    209    210    211    212    213    214    215    216    217    218    219    220    221    222    223    224    225    226    227    228    229    230    231    232    233    234    235    236    237    238    239    240    241    242  

 <         > 
Список директив: Core  |  ModRewrite  |  Lua  |  Proxy  |  SSL

Директива ErrorDocument
  RU            EN  

Description:What the server will return to the client in case of an error
Syntax: ErrorDocument error-code document
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core

Описание: Что сервер вернет клиенту в случае ошибки


В случае проблемы или ошибки Apache httpd можно настроить для выполнения одного из четырех действий:

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

Первый параметр используется по умолчанию, а параметры 2–4 настраиваются с помощью директивы ErrorDocument , за которой следует код ответа HTTP и URL-адрес или сообщение. Apache httpd иногда предлагает дополнительную информацию о проблеме/ошибке.

Начиная с версии 2.4.13, внутри директивы можно использовать синтаксис выражения для создания динамических строк и URL-адресов.

URL-адреса могут начинаться с косой черты (/) для локальных веб-путей (относительно DocumentRoot ) или представлять собой полный URL-адрес, который может разрешить клиент. В качестве альтернативы может быть предоставлено сообщение для отображения в браузере. Обратите внимание, что решение о том, является ли параметр URL-адресом, путем или сообщением, выполняется до анализа любого выражения. Примеры:

ErrorDocument 500 http://example.com/cgi-bin/server-error.cgi
ErrorDocument 404 /errors/bad_urls.php
ErrorDocument 401 /subscription_info.html
ErrorDocument 403 "Sorry, can't allow you access today"
ErrorDocument 403 Forbidden!
ErrorDocument 403 /errors/forbidden.py?referrer=%{escape:%{HTTP_REFERER}}

Кроме того, это специальное значение default можно использовать для указания простого жестко заданного сообщения Apache httpd. Хотя в обычных обстоятельствах это не требуется, default он восстановит простое жестко закодированное сообщение Apache httpd для конфигураций, которые в противном случае унаследовали бы существующий файл ErrorDocument .

ErrorDocument 404 /cgi-bin/bad_urls.pl
<Directory "/web/docs">
 ErrorDocument 404 default
</Directory>

Обратите внимание, что когда вы указываете , ErrorDocument который указывает на удаленный URL-адрес (т. е. что-либо с методом, например, http перед ним), HTTP-сервер Apache отправит клиенту перенаправление, чтобы сообщить ему, где найти документ, даже если документ оказывается на одном сервере. Это имеет несколько последствий, наиболее важным из которых является то, что клиент не получит исходный код состояния ошибки, а вместо этого получит код состояния перенаправления. Это, в свою очередь, может сбить с толку веб-роботов и других клиентов, которые пытаются определить, действителен ли URL-адрес, используя код состояния. Кроме того, если вы используете удаленный URL-адрес в файле ErrorDocument 401 , клиент не будет знать, нужно ли запрашивать у пользователя пароль, поскольку он не получит код состояния 401. Следовательно, если вы используете ErrorDocument 401 директиву, то она должна ссылаться на локальный документ.

Microsoft Internet Explorer (MSIE) по умолчанию игнорирует сгенерированные сервером сообщения об ошибках, если они «слишком малы», и заменяет свои собственные «дружественные» сообщения об ошибках. Пороговое значение размера варьируется в зависимости от типа ошибки, но в целом, если вы сделаете документ с ошибкой больше 512 байт, MSIE покажет сгенерированную сервером ошибку, а не маскирует ее. Дополнительная информация доступна в статье Q294807 базы знаний Майкрософт.

Хотя большинство сообщений об ошибках можно переопределить, существуют определенные обстоятельства, при которых внутренние сообщения используются независимо от настройки ErrorDocument . В частности, если обнаружен искаженный запрос, нормальная обработка запроса будет немедленно остановлена и возвращено внутреннее сообщение об ошибке. Это необходимо для защиты от проблем безопасности, вызванных неправильными запросами.

Если вы используете mod_proxy, вы можете включить его ProxyErrorOverride , чтобы вы могли предоставлять настраиваемые сообщения об ошибках от имени ваших серверов Origin. Если вы не включите ProxyErrorOverride, Apache httpd не будет создавать пользовательские документы об ошибках для прокси-контента.

Смотрите также

  • документация настраиваемых ответов
  RU            EN  


Рейтинг@Mail.ru