如何更改 Asp.Net 中 customErrors 页面的默认行为
我使用 Asp.Net 4 和 C#。
我想知道如何更改 Asp.Net 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 状态
- 新创建的 url 的 302 状态
我想以这种方式更改此行为:
- 当请求时已创建未找到的页面 http://localhost:1372/nopagehere
- 结果应该只是 http://localhost:1372/nopagehere (无 302 重定向)并且状态代码仅在 404 上。
知道如何做它?感谢您抽出时间来讨论这个问题。
I use Asp.Net 4 and C#.
I would like to know how to change the default beahviour of Asp.Net customErrors
.
In my Web.Config
file I use this settings.
<customErrors mode="On" defaultRedirect="/ErrorPages/Oops.aspx">
<error statusCode="404" redirect="/ErrorPages/404.aspx" />
</customErrors>
As you can expect if a page is not found a redirect occur to the custom page specified in Web.Config.
Requested page:
http://localhost:1372/nopagehere
Result page:
http://localhost:1372/ErrorPages/404.aspx?aspxerrorpath=/nopagehere
When I analyse the Http Header for the Result page I can see:
- a 404 Status when the page is not found
- a 302 Status for the new created url
I would like change this behavior in this way:
- when a request to a not found page has been made http://localhost:1372/nopagehere
- the result should be only http://localhost:1372/nopagehere (no 302 redirect) and with status code only on 404.
Any idea how to do it? Thanks for your time on this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我猜您正在寻找
部分中的redirectMode
属性。请参阅:http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx
我认为您想将其设置为
redirectMode="ResponseRewrite"
。这会引发 404 并显示 404 页面的内容,但不会重定向到实际的 404 页面。I guess you are looking for the
redirectMode
attribute on your<customErrors>
section.See: http://msdn.microsoft.com/en-us/library/h0hfz6fc.aspx
I think you want to set it to
redirectMode="ResponseRewrite"
. This throws a 404 and shows the content of your 404 page, but without redirecting to the actual 404 page.也许从自定义错误中删除状态代码 404 并让默认重定向页面处理它。
Maybe removing the status code 404 from the custom errors and let the default redirect page handle it.