ErrorDocument не работает с файлом .htaccess

Я пытаюсь использовать файл .htaccess для настройки определенного поведения для одного каталога.

Мой .htaccess выглядит следующим образом:

ErrorDocument 401 /var/www/secret/logging.php

AuthName "My Password Protected Site"
AuthUserFile /var/www/secret/.htpasswd
AuthType Basic
Require valid-user

# Set REMOTE_USER env variable on 401 ErrorDocument
RewriteEngine On
RewriteBase /secret/
RewriteCond %{ENV:REDIRECT_STATUS} ^401$
RewriteRule .* - [E=REMOTE_USER:%{ENV:REDIRECT_REMOTE_USER}]

Однако при попытке проверить это на странице ошибки Apache по умолчанию указано ошибка 404 была обнаружена при попытке использовать ErrorDocument для обработки запроса. Все разрешения верны, все пути к файлам верны.

Что я делаю не так?

0
задан 23 November 2015 в 08:21
2 ответа

Если вы хотите перенаправить на внешний URL-адрес для решения проблемы / ошибки как документация https://httpd.apache.org/docs/2.2/en/mod/core.html#errordocument

Вы должны установить URL:

ErrorDocument 401 /secret/logging.php

иначе перенаправление ошибки будет пытаться перейти на http: // {yourSite} /var/www/secret/logging.php , который не существует, и вызывает ошибку 404 not found

0
ответ дан 5 December 2019 в 11:33

Проблема в том, что вы используете абсолютный путь в errordocument path. Это не работает, путь интерпретируется как находящийся внутри вашего DocumentRoot см. https://stackoverflow.com/questions/3311411/apache-errordocument-with-absolute-path для лотов дополнительная информация и временное решение.

0
ответ дан 5 December 2019 в 11:33

Теги

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