IIS7.0設(shè)置404錯誤頁,返回500狀態(tài)碼
IIS7.0設(shè)置404錯誤頁,返回500狀態(tài)碼
一般在II6下,設(shè)置自定義404錯誤頁時,只需要在錯誤頁中選擇自定義的頁面,做自己的404頁面即可。但是在IIS7.0及以上時,設(shè)置完404錯誤頁后,會發(fā)現(xiàn)狀態(tài)碼返回的是500,并且可能會引起頁面亂碼。查找資料,發(fā)現(xiàn)好多資料寫的不夠詳細,不能完美解決問題。特將我的經(jīng)驗分享一下,希望能幫助到大家。
經(jīng)過試驗,發(fā)現(xiàn)有兩種方案可用,各有利弊,我使用的是第二種方案。
方案1:
1. 在IIS中,找到對應(yīng)站點,打開“功能視圖”-“IIS欄”-“錯誤頁”;
2. 雙擊“404”,打開“編輯自定義錯誤頁”對話框;
3. 選中“在此網(wǎng)站上執(zhí)行URL”,輸入自定義404錯誤頁的URL(注意:此處URL是相對于網(wǎng)站根目錄的相對路徑,不能使用絕對路徑),點擊“確定”進行保存;
4. 選中“404”,點擊右側(cè)欄中的“編輯功能設(shè)置”,打開“編輯自定義錯誤頁”對話框;
5. 在“錯誤響應(yīng)”框中,選中“自定義錯誤頁”,點擊“確定”進行保存;
6. 重啟IIS。
優(yōu)缺點:此種方法優(yōu)點是設(shè)置方便,不需要改動代碼,只需要修改參數(shù)即可;但缺點是按照此種方法設(shè)置之后,服務(wù)器404錯誤時,會直接將自定義頁面給返回給客戶端,因此狀態(tài)代碼會返回200,不利于搜索引擎SEO優(yōu)化;
方案2:
1. 打開 C:\Windows\System32\inetsrv\config\ 路徑下的 applicationHost.config 文件(該文件是設(shè)置IIS參數(shù)的);
2. 搜索找到“<httpErrors>” 選項,將該選項的 allowAbsolutePathsWhenDelegated設(shè)置為”true”;
3. 在IIS中,找到對應(yīng)站點,打開“功能視圖”-“IIS欄”-“錯誤頁”;
4. 雙擊“404”,打開“編輯自定義錯誤頁”對話框;
5. 選中“將靜態(tài)文件中的內(nèi)容插入錯誤響應(yīng)中”,選擇或輸入自定義404錯誤頁的絕對路徑(注意:此處路徑是使用絕對路徑,一定不能使用相對路徑,否則會找不到頁面),點擊“確定”進行保存;
6. 選中“404”,點擊右側(cè)欄中的“編輯功能設(shè)置”,打開“編輯自定義錯誤頁”對話框;
7. 在“錯誤響應(yīng)”框中,選中“自定義錯誤頁”,點擊“確定”進行保存;
8. 重啟IIS。
優(yōu)點:設(shè)置之后,返回的狀態(tài)代碼依舊是404,不影響搜索引擎SEO優(yōu)化;
注意:如果不設(shè)置1、2步驟,直接從第3步設(shè)置,設(shè)置完成之后,返回的狀態(tài)碼為500,且會顯示亂碼。