2013-02-25 95 views
1

這不是我的確切的PHP,因爲它很複雜,但它是相同的一般想法。PHP - 標題404不觸發htaccess ErrorDocument

if($_GET['page'] == ".htaccess"){ 
    header("HTTP/1.0 404 Not Found"); 
} 

發生這種情況時,Apache不加載在.htaccess文件中設置的404頁面。我知道404的作品,因爲當我去一個不存在的頁面,我得到指定的404頁面。

有沒有什麼辦法可以獲得指定的404頁面加載而無需手動轉儲404頁面文件的內容?

+0

相關問題一併輸出它:http://stackoverflow.com/questions/5534268/headerhttp-1 -0-404-not-found-not-doing-anything – User 2014-08-16 02:29:02

回答

2

由於Apache已經確定該文件實際存在,它不會再次查找404。

一種解決方法實際上可能會將Location -header發送到實際不存在的頁面,並讓Apache處理它。另一種可能是通過PHP獲取404頁的內容,並用Status: 404 -header

+0

我很害怕這個。我會讓這個問題坐下來一兩天,看看是否有任何魔法黑客被發現,但如果沒有,我會接受。 – 2013-02-25 07:33:18

0

這可能工作

if (strstr($_SERVER['REQUEST_URI'],'.htaccess')){ 
    header('HTTP/1.0 404 Not Found'); 
    exit(); 
} 
+0

不起作用。 'die();'也不起作用。 – 2013-02-25 16:53:41