Exception PHP重定向页面

Exception PHP重定向页面,exception,controller,kohana-3,Exception,Controller,Kohana 3,我有一个kohana网站,我希望,如果有人修改了当前url(当他访问网站时在浏览器中),而该特定页面不存在,他应该重定向到当前页面(他现在所在的位置),或者在主页上,但不显示任何错误 您知道如何做到这一点吗?提供了您需要采取的基本步骤 基本上,您可以通过定义一个名为Kohana\u exception的类来替换现有的异常处理程序 在该处理程序中,您将检查错误号,如果是404,则基于http引用器执行重定向 class Kohana extends Kohana_Core { public

我有一个kohana网站,我希望,如果有人修改了当前url(当他访问网站时在浏览器中),而该特定页面不存在,他应该重定向到当前页面(他现在所在的位置),或者在主页上,但不显示任何错误

您知道如何做到这一点吗?

提供了您需要采取的基本步骤

基本上,您可以通过定义一个名为
Kohana\u exception
的类来替换现有的异常处理程序

在该处理程序中,您将检查错误号,如果是404,则基于http引用器执行重定向

class Kohana extends Kohana_Core
{
    public static function handler(Exception $e)
    {
        if($e instanceof Kohana_Request_Exception)
        {
            Request::current()->redirect(Request::initial()->referrer());
        }
    }
}
这应该放在例如
application/classes/kohana.php
请注意,这是基本要点。您应该对此进行扩展,并检查HTTP_Referer是否已设置,以及用户是否来自您的站点

还请注意,这可能会造成混乱,因为人们通常不会注意到他们已被重定向


查看指南,了解您应该在异常处理程序中执行的其他操作(例如,将其传递给默认处理程序。

您使用的是哪个版本的kohana?I asume Ko3.x此教程非常混乱,因为我不明白应该将类kohana_exception放置在何处—在它的实际错误控制器中?(这在页面中继续吼叫?)这个信息是为Kohana 3.1准备的,我也需要为Kohana 3.0修改它:我应该在每个控制器上捕获并抛出错误?我希望这是默认的,在bootstrapNo中,Kohana会抛出异常本身。但是,并不是说可能有更多的异常指示“404”情况。在Kohana 3.1中,这更容易,因为下面是一些特殊的HTTP异常。修改行是否安全:“抛出新的Kohana_请求_异常('无法找到与URI::URI'匹配的路由',数组(':URI'=>$URI));”