LINUX.ORG.RU
решено ФорумAdmin

Apache ErrorDocument 500

 


1

1

Всем привет!

Ищу как в апаче заменить страницу ошибки 500 на свою, кастомную.

Почитал всякие инструкции\документации - создал в руте сайта custom_50x.html с текстом и добавил в .htaccess:

ErrorDocument 500 /custom_50x.html

И в самом конце .htaccess написал пару «лишних» символов чтобы имитировать ошибку 500.

В итоге ошибка 500 появляется, но страница ошибки дефолтовая апачовая - «Internal Server Error».

Пробую добавить ErrorDocument в зону апача.

Получаю ту же дефолтовоую ошибку, только с дополнительной строкой в конце:

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

В error_log'e вижу только ошибку .htaccess'a:

Sep 21 15:25:30 apache_error: [Wed Sep 21 15:25:30 2016] [alert] [client 182.128.218.248] /home/fura/wordpress/public_html/.htaccess: Invalid command 'FDSFDS', perhaps misspelled or defined by a module not included in the server configuration, referer: http://fura-wordpress.tmptmp.ru/

В поисках хоть какого-то решения нахожу на сервере файл:

/usr/share/apache2/error/HTTP_INTERNAL_SERVER_ERROR.html.var

Пробую менять его текст (с перезапуском апача) но текст дефолтовой ошибки не меняется.

Подскажите что я делаю не так =\ ?

Как мне заменить дефолтовую страницу 500 ошибки апача на свою?

Версия апача 2.2.

Спасибо.

★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от Avial

Да, доступ есть, проверял strace'ом - он этот файл открывает и читает, но в ответ выдает все равно «своё».

В исходниках апача (версии 2.2.31), в файле:

./modules/http/http_request.c
есть функция ap_die_r:
http://pastebin.com/95P6gCma
в ней, как я понял, и происходит процесс формирования ответа, и мой вариант идет по самому последнем else, где заполняется переменная recursive_error, но почему это происходит я так пока и не понимаю =(

fura13 ★★★
() автор топика
Ответ на: комментарий от fura13

Тем не менее такая конструкция вполне себе успешно работает:

ErrorDocument 500 "<p>asdsadcustom_50x.html sadsada<br> \
fdsafs<br>adfsaf</p>"

и в принципе мне этого достаточно

fura13 ★★★
() автор топика
Ответ на: комментарий от fura13

Если добавить в конфиг:

    Alias /error/ "/usr/share/apache2/error/" 

    <Directory "/usr/share/apache2/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en cs de es fr it nl sv pt-br ro
        ForceLanguagePriority Prefer Fallback
    </Directory>

    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var

То начинает «работать» файл:

/usr/share/apache2/error/HTTP_INTERNAL_SERVER_ERROR.html.var
Который удобно редактировать через стили:
/usr/share/apache2/error/include/

fura13 ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.