【问题标题】:ASP.NET custom error page HTTP responseASP.NET 自定义错误页面 HTTP 响应
【发布时间】:2013-06-08 16:29:49
【问题描述】:

为什么当您打开自定义错误时,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 保留在原始请求中。

除非我错过了什么......

【问题讨论】:

    标签: asp.net http iis http-response-codes


    【解决方案1】:

    你说得对,启用customErrors 时,ASP.NET 的行为有点奇怪。总之,你可以为customErrors设置redirectMode="ResponseRewrite",并在你的error.aspx页面中专门设置响应码。

    我已在此处发布详细信息:Keep ASP.NET error pages out of search engines

    【讨论】:

      猜你喜欢
      • 2011-03-26
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2014-12-01
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多