2011-05-27 137 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