Я хочу перенаправить ошибку на определенную страницу, поэтому написал:
ErrorDocument 403 /error403.html
Это работает, но в заголовке ответа HTTP я все еще вижу HTTP/1.1 403 Forbidden
.
Некоторые браузеры (например, IE), которые видят это сообщение, игнорируют HTML-код в ответе ( error403.html
) и вместо этого показывать собственную страницу.
Есть ли способ сообщить серверу, что если ErrorDocument
обрабатывает ошибку, он не будет включать заголовок ошибки HTTP?
Не делай этого. Это нарушит протокол HTTP. Интернет построен на предположении, что серверы будут выдавать правильные сообщения об ошибках и что клиенты будут правильно обрабатывать эти сообщения об ошибках.
В этом случае, если вы действительно хотите, чтобы он выглядел лучше только для IE, используйте mod_rewrite
сделать исключение для IE. Базовый ускоренный курс по mod_rewrite доступен по адресу канонический вопрос о mod_rewrite. В этом случае вам понадобится RewriteCond
это срабатывает только тогда, когда строка User-Agent совпадает с IE.
Internet Explorer глуп и отображает свои собственные страницы ошибок вместо ваших, если ваша страница ошибки меньше 512 байт после сжатие. Сделайте страницу ошибки не менее 512 байт (возможно, добавьте длинный HTML-комментарий, если вам нечего сказать).