2014-01-29 180 views
0
頁面

我有以下.htaccess文件遺憾的是,當它遇到一個404響應代碼的ErrorDocument不顯示

ErrorDocument 404 /404.php 
Options +FollowSymLinks 
RewriteEngine On 
RewriteRule ^index.html index.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?params=$1$2$3 [NC] 

在這裏,我不重定向到錯誤頁面是我的PHP代碼巫返回404:

if ($param1 != 'en') 
    { 
     header("HTTP/1.0 404 Not Found"); 
     die(); 
    } 

我必須提到,我沒有訪問apache日誌,所以我不知道發生了什麼。瀏覽器成功接收404錯誤消息,只顯示一個空白頁面。

+0

當然沒有,因爲你重定向「一切」這不是一個物理文件或文件夾到你的index.php - 所以定義的錯誤文檔根本不起作用。因此,您將在腳本中輸出所需的錯誤消息。 – CBroe

回答

1

這裏沒有什麼奇怪的事情發生在這裏。 Apache在使用ErrorDocument指令時只能使用,因爲它本身找不到文檔。但顯然,它已經找到了它所調用的PHP腳本。除了將它交付給客戶端外,PHP對PHP設置的什麼HTTP狀態沒有任何其他問題。

如果您希望自定義錯誤文檔,die()之前它包含:

include_once "404.php"; 
die();