Asp.net

ASP.NET 自定義錯誤頁面 HTTP 響應

  • December 9, 2013

為什麼當您打開自定義錯誤時,asp.net 從沒有自定義錯誤時執行正常的 404 響應變為響應 302 或 200?

因此,例如,我嘗試了以下所有方法:

<customErrors defaultRedirect="Error.aspx" mode="Off">
   <error statusCode="404" redirect="Error.aspx?status=404" />
</customErrors>

<httpErrors>
   &lt;remove statusCode="404" subStatusCode="-1" /&gt;
   &lt;error statusCode="404" path="/error.aspx?status=404" responseMode="ExecuteURL" /&gt;
&lt;/httpErrors&gt;

<httpErrors>
   &lt;remove statusCode="404" subStatusCode="-1" /&gt;
   &lt;error statusCode="404" path="/error.aspx?status=404" responseMode="Redirect" /&gt;
&lt;/httpErrors&gt;

據我所知,第一個在重定向到錯誤頁面時給出了 302,第二個由於某種原因給出了 200,最後一個也給出了 302。這似乎很愚蠢,因為我仍然想要一個 404(或其他其他錯誤程式碼)但顯示友好消息。

我意識到我可以用我的錯誤頁面發回不同的響應,但這似乎將 404 程式碼提供給錯誤頁面並將 302 保留在原始請求中。

除非我錯過了什麼…

customErrors你是對的,啟用ASP.NET 時的行為有點古怪。簡而言之,您可以在error.aspx頁面中設置並專門設置響應程式碼redirectMode="ResponseRewrite"customErrors

我在這裡寫了詳細資訊:將 ASP.NET 錯誤頁面排除在搜尋引擎之外

引用自:https://stackoverflow.com/questions/17067565