2011-05-27 135 views
0

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

有关如何做到这一点的任何想法?

+0

的Kohana的版本,你用哪个?我asume Ko3.x – Ikke 2011-05-27 12:33:57

+0

是,Kohana的3.0 – dana 2011-05-27 12:47:59

回答

1

guide给出了您需要采取的基本步骤。

您基本上通过定义名为Kohana_Exception的类来替换现有的异常处理程序。

在该处理程序中,您将检查错误编号,如果它是404,则根据http referer进行重定向。

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是否已设置,并确定该用户实际上来自您的网站。

另请注意,这可能会导致混淆,因为人们通常不会注意到它们已被重定向。

检查,你应该在异常处理程序做(例如用于其他事情的指南,它传递到默认处理程序。

+0

本教程相当混乱,因为我不明白我应该在哪里放置类Kohana_Exception - 它在实际的错误控制器?(在页面中继续下面?) – dana 2011-05-27 12:53:02

+0

此信息是为Kohana 3.1,我需要改变它Kohana 3.0 – Ikke 2011-05-27 12:54:52

+0

另外:我应该赶上并抛出每个控制器的错误?我希望这是默认的,一些如何在引导 – dana 2011-05-27 12:55:00