2013-04-24 36 views
0

我的根目錄中有一個自定義的404錯誤頁面。重定向到我的custom404錯誤頁面php

我也編輯了我的.httaccess文件。

現在我想重定向到我的自定義404頁面,如果某些情況在我的頁面失敗。

例如$ _SESSION [log] == 1失敗。 所以我的問題是

1.什麼代碼,我應該在PHP中使用這樣做呢?

2.如何使其他類型的錯誤,如401和許多其他類型的錯誤?

在我.httaccess頁,我有這些行

ErrorDocument 404 http://mydomain.com/404custom.php 

而且我設計我的needs..Simple HTML頁面404custom.php ...

+0

請顯示您到目前爲止的代碼 – Cfreak 2013-04-24 15:45:04

+0

@Cfreak編輯.. – user2234992 2013-04-24 15:48:28

回答

1

1至重定向用戶你可以使用:

<?php 
    header('Location: http://www.example.com/404.html'); 
?> 

但使用header()沒有echo甚至沒有空格之前,你一定不要發送任何數據。

2-對於其他錯誤:

ErrorDocument 400 /var/www/errors/index.html 
ErrorDocument 401 /var/www/errors/index.html 
ErrorDocument 403 /var/www/errors/index.html 
ErrorDocument 404 /var/www/errors/index.html 
ErrorDocument 500 /var/www/errors/index.html 
+0

也許值得發送一個HTTP頭代碼讓瀏覽器知道發生了什麼。 http://en.wikipedia.org/wiki/List_of_HTTP_status_codes – 2013-04-24 15:50:40

+0

@Chewie感謝您的回覆.. 404.html?我的意思是我必須使用我的頁面(404custom.php)或404.html是標準頁面。 – user2234992 2013-04-24 15:50:57

+0

404custom.php也可以。只需提供您想要將用戶重定向到的網址即可。 @JamesElliott我完全同意,你可以參考header()手冊發送一個HTTP responde代碼。 http://php.net/manual/fr/function.header.php – Chewie 2013-04-24 15:53:02

2

不要在錯誤的情況下發送Location頭。改爲發送正確的狀態碼。您必須根據http規範發送正確的狀態碼。

header("HTTP/1.0 404 Not Found"); 

爲了顯示正確的自定義網站,你已經在.htaccess文件中你的ErrorDocument語句。

特別是對於403未經授權錯誤發送正確的狀態代碼是很重要的,這樣瀏覽器就可以準確地做出反應。