2009-10-25 82 views
0

在我的網站上,website.com/downloads實際上轉到website.com/index.php?page=downloads(使用Apache重寫)。我有一個自定義404未找到錯誤頁面集。如果我做website.com/dkfjf/fdf,它會轉到404錯誤,但如果我做website.com/something,它會轉到index.php?page = something,那麼在我的index.php中,我怎麼能使它只是導航到404錯誤,我確定沒有something頁面?因爲現在,我只是將我的404錯誤頁面加載到主div(與所有其他頁面一樣),但它不一致(例如,它仍然在地址欄中顯示website.com/soemthing,還有其他問題),而我只是想讓它導航到404錯誤。我怎樣才能做到這一點?PHP導航到錯誤頁面

編輯:這工作:

echo '<meta http-equiv="refresh" content="0; url = /error" />'; 

(mywebsite.com/error重寫到index.php頁=錯誤,這是我的404錯誤頁面?)。 這是一個壞方法嗎?

回答

3

使用header function發送正確的狀態碼:

header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404); 

然後你就可以用readfile發送您的錯誤文檔,如果它是一個靜態文件或include如果它是一個PHP文件。

+0

@ Mk12:在調用'header'之前,您需要確保沒有輸出。否則,HTTP標頭不能被修改,因爲它與第一個輸出一起發送。你可以使用輸出控件來緩衝輸出(參見http://php.net/manual/en/book.outcontrol.php)。 – Gumbo 2009-10-25 20:28:24

+0

是不是有一些方法我只能做navigate_url(「/錯誤」)? (website.com/error去index.php?page =錯誤,這是我的404錯誤頁面設置,但我想/錯誤顯示在地址欄中。 – mk12 2009-10-25 20:29:15

+0

有沒有辦法導航到一個URL好像它是一個鏈接點擊? – mk12 2009-10-25 20:29:59