ASP.NET制作 404页面是否符合SEO设计二? 2013-07-26 来源: 卓杰科技(www.zhuojie.net) 浏览:

ASP.NET客制化404页面该如何撰写

I.在预设情况下,ASP.NET是使用的web.config来处理404错误,

<customErrors defaultRedirect="GenericError.htm" mode="On">
 <error statusCode="404" redirect="404.html"/>
</customErrors>



然而,这种方法会出现一个问题,那就是Http Responsec会先回传302暂时性转址状态代码后,在回传一次200(OK)码,这种设计方式对于搜索引擎是不够友善的。



ASP.NET客制化404解决方案1



让我们先修改web.config的设定来处理404错误。

<customErrors defaultRedirect="GenericError.htm" mode="On">
 <error statusCode="404" redirect="404.aspx"/>
</customErrors>



紧接着让我们在404页面内的Page_Load事件下添加此段程序代码

protected void Page_Load(object sender, EventArgs e)
 {
  Response.StatusCode = 404;
 }

现在,我们测试后可以发现,虽然已回传404状态代码,但是还是会先经过一次的302暂时性转址,所以这样的方法对于搜索引擎还不够友善。



ASP.NET客制化404解决方案2



让我们先把web.config的404设定语法先批注掉。

<!--<customErrors defaultRedirect="GenericError.htm" mode="On">
 <error statusCode="404" redirect="404.html"/>
</customErrors>-->



紧接着在Global.asax新增以下代码,来处理404错误

protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex is HttpException)
  {
  if (((HttpException)(ex)).GetHttpCode() == 404)
  Server.Transfer("~/404.html");
  }
  // Code that runs when an unhandled error occurs
  Server.Transfer("~/GenericError.htm");
}

                                                  

现在让我们再次测试,可以发现到只有回传404状态代码,这样的设计就能完全符合客制化404页面的设计。




最后让我们来看看国外网站的404页面,顺便验证看看到底符合几项规范

nicolaslagarde網站404頁面設計案例http://www.nicolaslagarde.com/404notfoundacme網站404頁面設計案例http://www.acme.com/missing.htmlkissmetrics網站404頁面設計案例http://www.kissmetrics.com/404/carsonified網站404頁面設計案例http://www.carsonified.com/404rightmove網站404頁面設計案例http://www.rightmove.co.uk/404bluedaniel網站404頁面設計案例

转自awoo SEO研究团队

在线咨询

020-89202380