繁体   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