我正在使用.htaccess文件重定向到错误页面,如果发生错误,但没有找到错误.我测试如果error.php页面工作,但我得到了以下结果. 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
2条答案
按热度按时间beq87vna1#
您正在将重定向到所选虚拟主机的DocumentRoot的根目录(/error.php),请检查error.php是否在该DocumentRoot上。
检查Apache的日志文件以查看其他错误。
看起来 * 这不是您的问题 *,但您需要正确设置AllowOverride。
检查Apache配置中的目录是否包含类似以下内容
如果是,您应该将其更改为允许.htaccess文件覆盖某些配置。ErrorDocument指令需要 FileInfo 或 All,如下所示:
628mspwn2#
您正在重定向到所选虚拟主机的DocumentRoot的根目录(/error.php),请检查error.php是否在该DocumentRoot上。
检查Apache的日志文件以查看其他错误。
这似乎不是您的问题,但您需要正确设置AllowOverride。
检查Apache配置中的目录是否包含类似以下内容