在我的ASP.NET网站的web.config中,我打开customErrors
并设置为在HTTP 404的情况下重定向到特定操作:
现在我启动Fiddler,并在我的浏览器中查询一些产生HTTP 404的URL.Fiddler清楚地显示,首先浏览器查询该URL并获取HTTP 302,其路径为<...>/Error/FileNotFound
并查询并最终接收HTTP 200
如此有效地原始HTTP 404消失,我得到HTTP 302,然后是HTTP 200。
同时,如果我从StackOverflow查询一些无效地址(如https://stackoverflow.com/ques/ask),我会在一个请求中获得HTTP 404。我之所以提到这一点,是因为StackOverflow也使用了ASP.NET。
如何在IIS中使用customErrors
来获取HTTP 404而不是HTTP 302,然后是HTTP 200?
答案 0 :(得分:3)
在customErrors
节点中,您可以设置以下属性:
redirectMode="ResponseRewrite"
这会阻止页面重定向,而是写错误页面而不是请求的页面。
注意:您还必须确保用作404错误页面的页面实际上本身在代码隐藏中返回404状态代码; MS重写支持不会自动传递状态代码,请参阅link: