2013-01-25 198 views
2

我有以下用於執行重定向的代碼。如果我的$includeFile不存在,它將重定向到404頁面。這是從我index.php顯示HTTP狀態200而不是404的404錯誤頁面

if (!file_exists($includeFile)) 
    Header("HTTP/1.1 404 Page Not Found"); 
    Header("Location: http://legascy.com/404_error/"); 

http://legascy.com/404_error/一個片段是顯示HTTP狀態200 OK,而不是404

如何解決這個問題?

+0

檢查此SO帖子[在PHP中發送404錯誤](http://stackoverflow.com/questions/437256/sending-a-404-error -in-php) –

+0

您是否手動導航到'http:// legascy.com/404_error /',例如,您是否將該URL輸入瀏覽器?如果是這樣,應該(正確)返回200 OK,因爲該頁_does_存在。 – andyb

回答

1

您需要將404的標頭函數放置在「404_error」頁面上,而不是重定向的頁面。這是因爲瀏覽器被髮送到具有默認200狀態碼的404_error。

if (!file_exists($includeFile)) { 
    header("Location: http://legascy.com/404_error/"); 
} 

而且在404_error/index.php文件:

header("HTTP/1.1 404 Page Not Found"); 
+0

我沒有得到你 – Athi

+0

404錯誤頁面我想給 – Athi

+0

謝謝你的工作 – Athi

0

你以前發送404錯誤代碼報頭由Location頭丟棄,瀏覽器將用戶帶到新的一頁。您重定向到的頁面可用,因此它將始終顯示200.

+0

我想顯示404錯誤page.I craeted該頁 – Athi