Как настроить apache, чтобы не отображать содержимое страницы с ошибкой? Мне не нужно поведение по умолчанию, пустая или настраиваемая страница. Я не хочу возвращать никакого контента, кроме заголовков, чтобы все браузеры отображали собственную страницу ошибок. Я использую Apache 2.2.22
Я почти уверен, что вы не можете этого сделать. Apache делает все возможное, чтобы быть полезным. Из ErrorDocument документация
В случае возникновения проблемы или ошибки Apache httpd можно настроить для выполнения одного из четырех действий:
- вывести простое жестко закодированное сообщение об ошибке
остальные - это настраиваемые / локальные / и удаленные документы об ошибках. Позже в документации говорится
Кроме того, специальное значение по умолчанию можно использовать для указания простого жестко закодированного сообщения Apache httpd.
Таким образом, похоже, что поведение по умолчанию - предоставить жестко закодированный ErrorDocument, и вы не можете переопределить его так, как хотите.
Если в вашем Apache есть PHP, Perl или любое другое динамическое расширение, способное управлять заголовком HTTP, тогда делать создать настраиваемую страницу, которая отвечает нужными полями заголовка HTTP (например, с помощью PHP header()
), но без другого содержимого, такого как HTML.
Настройка ErrorDocument
директива этой настраиваемой страницы должна дать желаемый результат.
Примечание. Мне известно, что в вашем вопросе задается вопрос, как выполнить ответ, настроив Apache так, чтобы не обслуживать содержимое страницы с ошибкой и не использовать какие-либо настраиваемые страницы. Приведенный выше ответ действителен, только если вы не ограничены как Настоящий проблема (т.е. предоставление ответа HTTP, содержащего только поля заголовка HTTP), должно быть решено. Действительно ли у вас есть ограничение, согласно которому реальная проблема (т.е. желаемый результат) не может быть решена путем вовлечения любой настраиваемой страницы?
Вы пробовали установить пустой ErrorDocument
директивы? Это сработало?
ErrorDocument 404 ""
Или
ErrorDocument 404 /path/to/empty/file.html
Apache может быть полезным и игнорировать пустые значения, поэтому вам, возможно, придется отправить пробел или <html></html>
чтобы он не переопределил ваши ценности.
Стоит отметить, что в браузерах нет страниц ошибок для всех возможных кодов ошибок. Ответственность за предоставление этих страниц лежит на Сервере. Когда браузеры отображают собственные страницы ошибок, скорее всего, они будут общими и вводящими в заблуждение.
Internet Explorer уникален тем, что думает, что он знает лучше, чем сервер, и переопределит ваши страницы ошибок, если они меньше 512 байт. Остальные предоставляют страницы ошибок только для ситуаций, когда сервер не могу например, ошибка поиска DNS, сброс соединения или петля перенаправления. В большинстве браузеров, если вы отправите пустой документ об ошибке, вы получите пустую страницу.