正确设置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。

posted @ 2010-05-06 17:37  ido  阅读(3054)  评论(3编辑  收藏  举报