技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

htaccess ErrorDocument 404设置无效的原因

作者:admin    时间:2018-1-29 15:51:14    浏览:

今天有群友提到,他的 .htaccess 里设置的 ErrorDocument 无效,404跳不到指定的网页。代码如下:

ErrorDocument 404 /404.html

 ErrorDocument 设置404无效

ErrorDocument 设置404无效

看到群友的提问,根据我的经验,很可能是该群友的Apache设置文件 httpd.conf 没有设对。最后在我的指引下,他成功解决了这个问题。

设置方法如下:

打开 httpd.conf ,此文件在Apache的安装目录下。

然后找到网站根目录的 Directory ,再把里面的 AllowOverride None 改为 AllowOverride All 。如下图所示:

设置 AllowOverride

设置 AllowOverride

如果没有找到网站根目录的这个Directory,则自己可加上一个,设置方法同上。

设置完毕,不要忘了重启Apache,以使设置生效。

经过上述设置,.htaccessErrorDocument 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;
}
?>

当然你可以使用更具个性的错误提示,上面代码仅供参考。

标签: apache  404  ErrorDocument  htaccess  
  • IT热文
  • 站长推荐