技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營

贊助商

分類目錄

贊助商

最新文章

搜索

htaccess ErrorDocument 404設(shè)置無效的原因

作者:admin    時(shí)間:2018-1-29 15:51:14    瀏覽:

今天有群友提到,他的 .htaccess 里設(shè)置的 ErrorDocument 無效,404跳不到指定的網(wǎng)頁。代碼如下:

ErrorDocument 404 /404.html

 ErrorDocument 設(shè)置404無效

ErrorDocument 設(shè)置404無效

看到群友的提問,根據(jù)我的經(jīng)驗(yàn),很可能是該群友的Apache設(shè)置文件 httpd.conf 沒有設(shè)對(duì)。最后在我的指引下,他成功解決了這個(gè)問題。

設(shè)置方法如下:

打開 httpd.conf ,此文件在Apache的安裝目錄下。

然后找到網(wǎng)站根目錄的 Directory ,再把里面的 AllowOverride None 改為 AllowOverride All 。如下圖所示:

設(shè)置 AllowOverride

設(shè)置 AllowOverride

如果沒有找到網(wǎng)站根目錄的這個(gè)Directory,則自己可加上一個(gè),設(shè)置方法同上。

設(shè)置完畢,不要忘了重啟Apache,以使設(shè)置生效。

經(jīng)過上述設(shè)置,.htaccessErrorDocument 404跳轉(zhuǎn)就沒問題了。

用error.php返回錯(cuò)誤提示

在實(shí)際應(yīng)用中,我們只用一個(gè)錯(cuò)誤文件 error.php 來返回不同狀態(tài)顯示的錯(cuò)誤提示,而不需要專門制作多個(gè)不同的提示文件,維護(hù)更加簡單。

.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 = "請(qǐng)求錯(cuò)誤";
  break;

  case 401:
    $title = "401 Unauthorized";
    $description = "請(qǐng)求認(rèn)證失敗";
  break;

  case 403:
    $title = "403 Forbidden";
    $description = "請(qǐng)求被禁止";
  break;

  case 404:
    $title = "404 Not Found";
    $description = "找不到文件";
  break;

  case 500:
    $title = "500 Internal Server Error";
    $description = "內(nèi)部服務(wù)器錯(cuò)誤";
  break;

  case 502:
    $title = "502 Bad Gateway";
    $description = "網(wǎng)關(guān)錯(cuò)誤";
  break;

  case 504:
    $title = "504 Gateway Timeout";
    $description = "請(qǐng)求超時(shí)";
  break;
}
?>

當(dāng)然你可以使用更具個(gè)性的錯(cuò)誤提示,上面代碼僅供參考。

標(biāo)簽: apache  404  ErrorDocument  htaccess  
x
  • 站長推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */