2017-05-19 101 views
0

我使用.htaccess文件重定向到錯誤頁面,如果發生錯誤但未找到錯誤。我測試如果error.php頁面正在工作,但我得到以下結果。嘗試使用ErrorDocument處理請求時遇到404 Not Found錯誤。htaccess:404沒有發現錯誤雖然嘗試ErrorDocument

的.htaccess

RewriteEngine On 

ErrorDocument 400 /error.php 
ErrorDocument 401 /error.php 
ErrorDocument 403 /error.php 
ErrorDocument 404 /error.php 
ErrorDocument 500 /error.php 
ErrorDocument 502 /error.php 
ErrorDocument 504 /error.php 

error.php

<?php 

switch($_SERVER["REDIRECT_STATUS"]){ 
    case 400: 
     $title = "400 Bad Request"; 
     $description = "The request can not be processed due to bad syntax"; 
    break; 

    case 401: 
     $title = "401 Unauthorized"; 
     $description = "The request has failed authentication"; 
    break; 

    case 403: 
     $title = "403 Forbidden"; 
     $description = "The server refuses to response to the request"; 
    break; 

    case 404: 
     $title = "404 Not Found"; 
     $description = "The resource requested can not be found."; 
    break; 

    case 500: 
     $title = "500 Internal Server Error"; 
     $description = "There was an error which doesn't fit any other error message"; 
    break; 

    case 502: 
     $title = "502 Bad Gateway"; 
     $description = "The server was acting as a proxy and received a bad request."; 
    break; 

    case 504: 
     $title = "504 Gateway Timeout"; 
     $description = "The server was acting as a proxy and the request timed out."; 
    break; 
} 
?> 

結果:

Not Found 

The requested URL /myweb/faq.html was not found on this server. 

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. 
Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/7.0.13 Server at 192.168.5.120 Port 80 

回答

0

你重定向到根(/error.php)DocumentRoot的的選中的虛擬主機,檢查它是否在該DocumentRoot上的error.php。

檢查Apache的日誌文件以查看其他錯誤。

看來這不是你的問題但你需要正確設置AllowOverride。

檢查的Apache配置目錄有類似

AllowOverride none 

如果是的話,你應該改變它允許.htaccess文件覆蓋一些配置。 ErrorDocument指令需要的FileInfo所有這樣的:

AllowOverride FileInfo 
相關問題