htaccess ErrorDocument 404设置无效的原因
作者:admin 时间:2018-1-29 15:51:14 浏览:今天有群友提到,他的 .htaccess
里设置的 ErrorDocument
无效,404跳不到指定的网页。代码如下:
ErrorDocument 404 /404.html
ErrorDocument 设置404无效
看到群友的提问,根据我的经验,很可能是该群友的Apache设置文件 httpd.conf
没有设对。最后在我的指引下,他成功解决了这个问题。
设置方法如下:
打开 httpd.conf
,此文件在Apache的安装目录下。
然后找到网站根目录的 Directory
,再把里面的 AllowOverride None
改为 AllowOverride All
。如下图所示:
设置 AllowOverride
如果没有找到网站根目录的这个Directory
,则自己可加上一个,设置方法同上。
设置完毕,不要忘了重启Apache,以使设置生效。
经过上述设置,.htaccess
的 ErrorDocument
404跳转就没问题了。
用error.php返回错误提示
在实际应用中,我们只用一个错误文件 error.php 来返回不同状态显示的错误提示,而不需要专门制作多个不同的提示文件,维护更加简单。
.htaccess代码如下:
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 = "请求错误";
break;
case 401:
$title = "401 Unauthorized";
$description = "请求认证失败";
break;
case 403:
$title = "403 Forbidden";
$description = "请求被禁止";
break;
case 404:
$title = "404 Not Found";
$description = "找不到文件";
break;
case 500:
$title = "500 Internal Server Error";
$description = "内部服务器错误";
break;
case 502:
$title = "502 Bad Gateway";
$description = "网关错误";
break;
case 504:
$title = "504 Gateway Timeout";
$description = "请求超时";
break;
}
?>
当然你可以使用更具个性的错误提示,上面代码仅供参考。
- 站长推荐