Для моей веб-страницы у меня есть документ .htaccess
который выглядит так:
<Files .htaccess> order allow,deny deny from all </Files> ErrorDocument 404 /websites/404/index.php
Теперь, насколько я понимаю, вы можете включить дополнительный ErrorDocument
, просто добавив еще одну строку. Например
<Files .htaccess> order allow,deny deny from all </Files> ErrorDocument 404 /websites/404/index.php ErrorDocument 503 /websites/maintenance/index.php
Однако, когда я пытаюсь добавить страницу для HTTP 451, используя следующую строку кода ErrorDocument 451 /websites/451/index.php
и я перезагружаю свою страницу, я получаю Server error! Error 500
Server error! Error 500
. Позже я узнал, что это произошло потому, что XAMPP больше не собирал мою папку с файлом .htaccess
и ошибка могла быть разрешена только путем удаления ErrorDocument
для error 451
. Что вызывает это и как я могу это исправить?
Заметка
Я также обнаружил, что это происходит при error 418: I'm a teapot
Несмотря на то, что существует много кодов статуса HTTP (которые официально поддерживаются IANA ), не все веб-серверы поддерживают все эти. Начиная с Apache 2.4, коды статуса 418 и 451 не поддерживаются и молча преобразуются в ошибку 500 с помощью Apache.
Последние дополнения поддерживаемых кодов состояния в Apache 2.4 – 414 и 501 и предотвращение сбоев на 400 (из журнала изменений Apache 2.4 ):
core: Поддержка настраиваемых ErrorDocuments для кодов статуса HTTP 501 и 414. PR 57167 [Эдвард Лу]
core: предотвращение сбоя сервера в случае недопустимого запроса CONNECT с настраиваемой страницей ошибок для кода статуса 400, который использует серверную часть. PR 58929 [Ruediger Pluem]
См. Список поддерживаемых кодов состояния HTTP (с Apache 2.4.4).
См. Более старую ошибку (поданную против 2.2) относительно переназначения пользовательских кодов состояния на 500 ошибок .
См. Предыдущий вопрос относительно аналогичной проблемы (но также и с Apache 2.2).
Из вашей ссылки на Википедию в ней говорится:
Он (451) был одобрен IESG 18 декабря 2015 года. [8] Он был опубликован как RFC 7725 в феврале 2016 года.
Статус 451 может быть достаточно недавним, что Apache (или другие поставщики, на которых полагается mod_rewrite) еще не включили поддержку кода состояния. Есть отчет об ошибке June 2016
с Red Hat Enterprise - httpd-2.4.6-40
например, который выглядит еще открытым: https://bugzilla.redhat.com/show_bug.cgi?id=1343582