Apache ErrorLog: невозможно использовать полный URL-адрес в директиве 401 ErrorDocument - игнорируя

Я использую файл .htaccess на моем Apache для отображения настраиваемых документов об ошибках. Все это тоже отлично работает.

Но я все еще вижу много этой ошибки в журнале:

[Thu Aug 13 10:38:31 2020] [notice] [client AH00113: /home/www/.htaccess:6 cannot use a full URL in a 401 ErrorDocument directive --- ignoring!

Строка 6 моего .htacess смотрит прямо вперед:

ErrorDocument 401 http://error.foo.bar/401.html

Почему нельзя использовать полный URL в директиве 401 ErrorDocument используемый? Ошибка или функция?

1
задан 13 August 2020 в 11:41
1 ответ

Вы можете использовать только локальный URL-путь в ответ на код 401. Это связано с тем,

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

1
ответ дан 13 August 2020 в 10:07

Теги

Похожие вопросы