2013-03-13 25 views
-1

不存在的網頁,我有以下代碼的偉大工程:國防部重新寫入也不會去「找不到404頁」

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?mode=$1 [QSA] 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?mode=$1&productContent=$2 [QSA] 

我的問題是,當我去那個不存在的頁面在我的網站即。 mysite.com/books我得到以下警告錯誤:無法打開流:沒有這樣的文件或目錄。有沒有辦法避免這個錯誤,並轉到「404頁面找不到」?

回答

1

你不能用Apache的mod_rewrite處理它,這是一個腳本錯誤,必須由你的代碼,PHP來處理。

+0

你知道我會怎麼做嗎? – 2013-03-15 04:17:50

+0

根據你的錯誤判斷,你只需要檢查'if(文件是否存在($ file))',如果沒有將用戶重定向到404頁面。如果你沒有在你的代碼中做好錯誤檢查,你可能會遇到另一個錯誤,但可能不會,但通常你只需要捕捉錯誤並執行'header('Location:your-404- page.php文件');死;'。確保在調用'header()'函數之前頁面上沒有任何輸出,否則它將會中斷,否則您將需要查找ob_start()'&'ob_ob_end_flush()' – 2013-03-15 04:25:26

+0

還要注意許多框架都有一個調試模式顯示錯誤消息而不是普通的404頁面。您將不得不關閉調試模式以查看您的自定義404s,500s等。 – 2013-03-15 05:02:35