Директива Apache ErrorDocument не перенаправляет

У меня есть куча директив ErrorDocument в моем файле .htaccess, чтобы отловить почти все возможные ошибки, которые Apache может выдать пользователю, и перенаправить указанного пользователя на мой контроллер ошибок что затем сделает ошибку более удобной для пользователя. Однако, это не работает.

Например, когда я ввожу недопустимый URL-адрес, например mysite.com/"##$##$! Я всегда получаю сообщение об ошибке 403 Apache по умолчанию вместо перенаправления на мой файл errors.php. Ниже я использую директиву. Нужно ли мне что-то делать, чтобы это работало? (AllowOverride All is set)

   ErrorDocument 403 /errors.php

Если это неправильный подход к абсолютной пользовательской обработке ошибок, дайте мне знать, я был бы признателен за толчок в правильном направлении.

Спасибо!

Изменить: Нужно ли мне что-то делать, чтобы это работало? (AllowOverride All is set)

   ErrorDocument 403 /errors.php

Если это неправильный подход к абсолютной пользовательской обработке ошибок, дайте мне знать, я был бы признателен за толчок в правильном направлении.

Спасибо!

Изменить: Нужно ли мне что-то делать, чтобы это работало? (AllowOverride All is set)

   ErrorDocument 403 /errors.php

Если это неправильный подход к абсолютной пользовательской обработке ошибок, дайте мне знать, я был бы признателен за толчок в правильном направлении.

Спасибо!

Изменить: Ой, просто подумал, что упомяну об этом Я написал свою собственную структуру MVC для перенаправления запроса, и она хорошо работает. Изнутри PHP, если пользователь запрашивает несуществующий URL-адрес, моя собственная ошибка 404 сработает нормально (или любая другая ошибка, которую я определил). В общем, если я войду на mysite.com / !!!! в URL-адрес, он будет работать, и я получу 404. Однако всякий раз, когда я начинаю запрос с символа двойной кавычки, возникает ошибка Apache 403 по умолчанию. Странный. Кроме того, ошибка 500 не сможет перенаправить на errors.php, а просто вернет экран Apache 500 по умолчанию (например, при тестировании с заголовком («HTTP / 1.0 500 Internal Server Error»); die ();) .

Редактировать 3: Я только что попытался поместить ErrorDocument 200 «message» в мой файл .htaccess, но ничего не произошло, любая открываемая мной страница открывается нормально. Худший вариант, это должно застрять в бесконечном цикле. В лучшем случае он должен выводить «сообщение». Ничего подобного, он просто проигнорировал ErrorDocument. Журнал доступа Apache отмечает обычный заголовок 200 OK, однако он полностью игнорировался .htaccess.

13
задан Swader 23 April 2011 в 19:41
поделиться