Проблемы с перенаправлением ошибки 400 Bad Request на пользовательскую страницу

Я отредактировал мой файл.htaccess следующим образом:

ErrorDocument 404 /index.php?page=page-not-found
ErrorDocument 400 /index.php?page=bad-request

Теперь ошибка 404 перенаправляет правильно, но если я ввожу адрес, такой как http://newshell/%22%%5E$ %% 5E &% C2% A3, и сервер не перенаправляет ошибку 400, но отображает сообщение apache по умолчанию. Что я делаю неправильно?

1 ответ

Решение

Цитата из документации Apache:

Хотя большинство сообщений об ошибках могут быть переопределены, есть определенные обстоятельства, когда внутренние сообщения используются независимо от настройки ErrorDocument. В частности, если обнаружен некорректный запрос, обычная обработка запроса будет немедленно остановлена, и будет возвращено внутреннее сообщение об ошибке. Это необходимо для защиты от проблем безопасности, вызванных неправильными запросами.

Итак, если вы хотите перенаправить ошибку 400, вы должны раскомментировать ErrorDocument директива в httpd.conf Файл конфигурации Apache выглядит следующим образом:

# Some examples:
#ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 400 /cgi-bin/bad_request.pl
#ErrorDocument 401 /subscription_info.html
#ErrorDocument 403 "Sorry can't allow you access today" 

и перезапустите сервер Apache.

Другие вопросы по тегам