Asp.net
ASP.NET 自定義錯誤頁面 HTTP 響應
為什麼當您打開自定義錯誤時,asp.net 從沒有自定義錯誤時執行正常的 404 響應變為響應 302 或 200?
因此,例如,我嘗試了以下所有方法:
<customErrors defaultRedirect="Error.aspx" mode="Off"> <error statusCode="404" redirect="Error.aspx?status=404" /> </customErrors>和
<httpErrors> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" path="/error.aspx?status=404" responseMode="ExecuteURL" /> </httpErrors>和
<httpErrors> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" path="/error.aspx?status=404" responseMode="Redirect" /> </httpErrors>據我所知,第一個在重定向到錯誤頁面時給出了 302,第二個由於某種原因給出了 200,最後一個也給出了 302。這似乎很愚蠢,因為我仍然想要一個 404(或其他其他錯誤程式碼)但顯示友好消息。
我意識到我可以用我的錯誤頁面發回不同的響應,但這似乎將 404 程式碼提供給錯誤頁面並將 302 保留在原始請求中。
除非我錯過了什麼…
customErrors你是對的,啟用ASP.NET 時的行為有點古怪。簡而言之,您可以在error.aspx頁面中設置並專門設置響應程式碼redirectMode="ResponseRewrite"。customErrors我在這裡寫了詳細資訊:將 ASP.NET 錯誤頁面排除在搜尋引擎之外。