簡體   English   中英

如何在PHP / Kohana中捕獲Apache的403錯誤?

[英]How to catch Apache's 403 error in PHP / Kohana?

我的網站在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。

有解決的辦法嗎?

無需使用.htaccess鎖定該區域,您可以在代碼中進行操作。 PHP的標頭函數可用於發送403狀態。

另一種方法是為Apache中的403錯誤設置自定義錯誤文檔,並將其指向用於處理錯誤的腳本。 有關執行此操作的方法,請參考ErrorDocument文檔,但這可能與以下內容類似:

ErrorDocument 403 /custom_403_handler.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM