Ответ 1
Это невозможно. Вам нужно иметь директиву ErrorDocument
для каждого кода состояния, который вы хотите обрабатывать иначе, чем с помощью обработчика ошибок по умолчанию.
Есть ли что-то вроде директивы wildcard, чтобы поймать все возможные ошибки и справиться с ними на одной странице пользовательских ошибок?
ErrorDocument 404 /error.php?code=404
ErrorDocument 403 /error.php?code=403
...
ErrorDocument NNN /error.php?code=NNN #possible use of RegExp?
Я знаю, что я, вероятно, не буду иметь дело с множеством настраиваемых страниц ошибок, но мне это интересно.
Это невозможно. Вам нужно иметь директиву ErrorDocument
для каждого кода состояния, который вы хотите обрабатывать иначе, чем с помощью обработчика ошибок по умолчанию.
Вместо того, чтобы передавать код состояния ошибки, вы можете выбрать его в своем script через переменную среды REDIRECT_STATUS (установленную Apache). См.: http://httpd.apache.org/docs/2.0/custom-error.html
Первый - .htaccess отформатирован
Второе - описания.
Все это я нашел здесь → httpstatuses.com
Это все коды, а не просто ошибки. Некоторые взломают ваш сайт. ,
Используйте как:
ErrorDocument 100 https://EXAMPLE.com
Это точная копия Вставить.. Это не мое, однако я переформатировал список.
(Наведите курсор для описания, нажмите для подробностей.)
1 × ×: информационный
• 100: продолжить
• 101: протоколы переключения
• 102: обработка
2 × ×: успех
• 200: ОК
• 201: создано
• 202: принято
• 203: неавторизованная информация
• 204: ОК (без содержимого)
• 205: сброс содержимого
• 206: частичное содержание
• 207: мульти-статус
• 208: уже сообщено
• 226: IM используется
3 × ×: перенаправление
• 300: множественный выбор
• 301: перемещено навсегда
• 302: найдено
• 303: см. Другое
• 304: не изменено
• 305: использовать прокси
• 307: временное перенаправление
• 308: постоянное перенаправление
4 × ×: ошибка клиента
• 400: неверный запрос
• 401: несанкционированный
• 402: требуется оплата
• 403: запрещено
• 404: не найден
• 405: метод не разрешен
• 406: неприемлемо
• 407: требуется проверка подлинности прокси
• 408: время ожидания запроса
• 409: конфликт
• 410: ушел
• 411: необходимая длина
• 412: предварительное условие не выполнено
• 413: запрос слишком большой
• 414: слишком длинный запрос URI
• 415: неподдерживаемый тип носителя
• 416: запрошенный диапазон не удовлетворяется
• 417: ожидание не удалось
• 418: я чайник
• 422: необработанный объект
• 423: заблокировано
• 424: сбой метода
• 426: требуется обновление
• 428: требуется предварительное условие
• 429. "): Слишком много запросов
• 431: слишком большие поля заголовка запроса
• 444: нет ответа
• 451: недоступно по юридическим причинам
• 499: закрытый запрос клиента
5 × ×: ошибка сервера
• 500: внутренняя ошибка сервера
• 501: не реализовано
• 502: плохие ворота
• 503: сервис недоступен
• 504: время ожидания шлюза
• 505: версия HTTP не поддерживается
• 506: вариант также ведет переговоры
• 507: недостаточно места для хранения
• 508: петля обнаружена
• 510: не продлен
• 511: требуется сетевая аутентификация
• 599: ошибка тайм-аута сетевого подключения
(Источник)
Я не нашел способ обрабатывать все ErrorDocument одной строкой. Но вам не нужно выписывать все перенаправления. Вы можете передать код ошибки в PHP с помощью:
$response_code = http_response_code()
Мой .htaccess выглядит
ErrorDocument 401 /error.php
ErrorDocument 402 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php