如何更改Asp.Net中customErrors页面的默认行为

时间:2011-09-01 09:54:53

标签: c# asp.net html http-status-code-404

我使用Asp.Net 4和C#。

我想知道如何更改Asp.Net customErrors的默认beahviour。

在我的Web.Config文件中,我使用此设置。

    <customErrors mode="On" defaultRedirect="/ErrorPages/Oops.aspx">
        <error statusCode="404" redirect="/ErrorPages/404.aspx" />
    </customErrors>

正如您所料,如果找不到页面,Web.Config中指定的自定义页面会出现重定向。


请求页面:

http://localhost:1372/nopagehere

结果页面:

http://localhost:1372/ErrorPages/404.aspx?aspxerrorpath=/nopagehere

当我分析结果页面的Http Header时,我可以看到:

  • a 404找不到页面时的状态
  • 新创建的网址的302状态

我想以这种方式改变这种行为:

知道怎么做吗?感谢您抽出宝贵时间。

2 个答案:

答案 0 :(得分:5)

我猜您正在寻找redirectMode部分的<customErrors>属性。

请参阅:http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx

我认为您要将其设置为redirectMode="ResponseRewrite"。这会抛出404并显示404页面的内容,但不会重定向到实际的404页面。

答案 1 :(得分:0)

可能会从自定义错误中删除状态代码404,并让默认重定向页面处理它。