Iis

IIS 8.5 - 返回靜態 404 文件時出錯

  • March 20, 2014

IIS8.5 > 站點 > mysite > 錯誤頁面 > 404

  • 選擇“將靜態文件中的內容插入錯誤響應”。
  • 取消選中“嘗試以客戶端語言返回錯誤文件”。
  • 輸入“notfound.html”的路徑,我已經驗證它在那裡。

當我訪問一個我知道不存在的頁面時,我得到:

The page cannot be displayed because an internal server error has occurred.

為什麼我沒有得到我的自定義 404 文件?

我不認為這是一個許可問題,我嘗試將“notfound.html”移動到幾個地方,其中一個是實際站點 wwwroot 文件夾,它為站點的其餘部分提供服務。

生成此錯誤是因為在 中檢測到絕對路徑web.config

文件中的部分C:\path\to\notfound.html不允許使用絕對物理路徑(如)。system.webServer/httpErrors``web.config

現在您有 2 個解決方案:


ApplicationHost.config1.允許文件中的物理路徑

預設情況下,此文件位於%SystemRoot%\system32\inetsrv\config

找到這個文件並編輯它

搜尋部分<httpErrors ..... >

然後添加指令allowAbsolutePathsWhenDelegated="true",如下所示:

<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath" allowAbsolutePathsWhenDelegated="true">
  ....
  ....
</httpErrors>

保存文件,應該可以了!


2.使用相對路徑

相對路徑意味著您必須將自定義錯誤頁面儲存在給定網站的根文件夾中。

然後,前往IIS > Sites > mysite > Error Pages > 404

並像這樣設置您的自定義錯誤頁面:

在此處輸入圖像描述

點擊OK,應該工作!


編輯 :

但是,請注意:

  • 解決方案 1 發送404 Not Found響應
  • 解決方案 2 發送200 OK響應

引用自:https://serverfault.com/questions/583246