Как отловить ошибку Apache 403 в PHP / Kohana? - PullRequest
1 голос
/ 04 февраля 2011

Мой сайт работает на Kohana v3, и я настроил настраиваемую страницу ошибок, как показано ниже в bootstrap.php

try
{
    // Attempt to execute the response
    $request->execute();
}
catch (Exception $e)
{ 
      .... error page re-direct.
}

Отлично работает с ошибкой 404.

У меня также есть некоторые папки, к которым нет прямого доступа, но они должны быть расположены под корнем www. Я поставил .htaccess для защиты этих папок

# nobody can access this folder from Browser
Deny from all

Когда пользователь вводит URL-адрес в браузере для доступа к файлам в этой папке, ошибка Apache 403 будет отображаться в виде простого текста, например:

Запрещено

У вас нет прав доступа к / private_folder на этом сервере.

Я хочу настроить эту ошибку и обработать ее в Kohana. Однако я считаю, что Apache полностью контролирует ошибку 403 и даже не вызывает index.php в этой ситуации.

Есть идеи, чтобы решить эту проблему?

1 Ответ

3 голосов
/ 04 февраля 2011

Вместо использования .htaccess для блокировки этой области, вы можете сделать это в коде. Функция заголовка PHP может использоваться для отправки статуса 403.

Другой подход заключается в том, чтобы настроить пользовательский документ об ошибках для 403 ошибок в Apache и указать это на сценарий для обработки ошибки. Обратитесь к документации ErrorDocument , чтобы узнать, как это сделать, но это будет примерно так:

ErrorDocument 403 /custom_403_handler.php
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...