Проблемы с перенаправлением ошибки 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.