如何更改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。
你知道怎么做吗?感谢您的宝贵时间。
我猜你正在寻找你的<customErrors>
部分的redirectMode
属性。
见:http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx
我想你应该把它设置为redirectMode="ResponseRewrite"
。这会抛出404并显示404页面的内容,但不会重定向到实际的404页面。
也许可以从自定义错误中删除404状态码,让默认的重定向页面处理它