2013-02-14 106 views
0

我想爲我的網站設置一個自定義404頁面,使用:ErrorDocument 404 /404.html但是當我添加這個時,轉到domain.com/dslkjflsdkjflskdjf不會重定向到404頁面。相反,它會重定向到我的主頁,主頁上的所有內容都會被打破。htaccess 404重定向不工作

我想知道如果這個mod_rewrite.c模塊是這個原因,我試着修改它(取出L,添加模塊內的重定向等),但沒有運氣。

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L] 
</IfModule> 

回答

0

我不確定這個,但我認爲你的服務器不會識別404錯誤,因爲每個請求都被重定向到你的index.php。您必須在index.php中確定是否存在404錯誤並使用header()函數發送頭文件。

+0

是否有一種方法可以重寫該模塊,以便我可以使用ErrorDocument來捕獲404? – user1086337 2013-02-14 23:37:50

+1

我不知道你的index.php做什麼,但我認爲它控制輸出並從數據庫動態加載它,所以只有你的index.php會知道是否沒有可用的內容。所以你的索引。 PHP必須捕捉錯誤並顯示錯誤頁面。所以在你的index.php中,如果用戶請求的內容不存在,就發送404頭部錯誤('HTTP/1.0 404 Not Found');之後包括你的404.php – user1950929 2013-02-14 23:46:58

+0

我已經試過你的解決方案,但是在PHP有時間向頭髮送404錯誤之前執行了模塊僞指令。 – user1086337 2013-02-15 18:13:19