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

本文关键字:默认 customErrors 何更改 Asp Net | 更新日期: 2023-09-27 18:07:17

我用Asp。. Net 4和c# .

我想知道如何改变Asp的默认行为。净customErrors .

在我的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报头时,我可以看到:

  • 页面未找到时的404状态
  • 一个302状态的新创建的url

我想这样改变这个行为:

  • 当请求一个未找到的页面时http://localhost:1372/nopagehere
  • 结果应该只有http://localhost:1372/nopagehere(没有302重定向)和状态码只有404。

你知道怎么做吗?感谢您的宝贵时间。

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

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

见:http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx

我想你应该把它设置为redirectMode="ResponseRewrite"。这会抛出404并显示404页面的内容,但不会重定向到实际的404页面。

也许可以从自定义错误中删除404状态码,让默认的重定向页面处理它