8

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

除非我错过了什么...

4

1 回答 1

4

customErrors你是对的,启用ASP.NET 时的行为有点古怪。简而言之,您可以在error.aspx页面中设置并专门设置响应代码redirectMode="ResponseRewrite"customErrors

我在这里写了详细信息:将 ASP.NET 错误页面排除在搜索引擎之外

于 2013-06-12T21:02:31.350 回答