Iis
IIS 8.5 - 返回靜態 404 文件時出錯
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.config
1.允許文件中的物理路徑預設情況下,此文件位於
%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
響應