正确设置asp.net网站的404错误页面
从网上搜索asp.net网站如何自定义404错误页面时,大多数文章都是告诉你:
在web.config中,找到system.web,配置以下内容即可。
<customErrors mode="On" error statusCode="404" redirect="/404.htm" >
</customErrors>
实际上这样做之后,根本就得不到404未找到网页的网页头信息,得到的是302临时重定向的网页头信息。大家可以用 Check Headers Tool 工具查看 HTTP Status Codes就知道了。
那么如何正确配置asp.net网站的自定义404错误网页呢?
首先制作一个404.aspx页面,然后在web.config文件下的customeErrors中如下配置:
customErrors redirectMode="ResponseRewrite"
error statusCode="404" redirect="~/404.aspx"/
/customErrors
RedirectMode有两种属性。
ResponseRedirect是指将用户重定向到该错误页面,并且原始 URL 更改为该错误页面的 URL。
ResponseRewrite是指将用户定向到错误页面,并且不更改浏览器中的原始 URL。
然后再在404.aspx.cs文件中,为Page_Load事件中加入以下代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.Status = "404 Not Found";
}
经过这样设置之后,HTTP Status Code 才会是 404 Not Found。