紫地瓜,袁绍光,杰拓
在项目中,我们常常需要自定义错误页面,但往往返回的状态码都变成了200,对seo很不友好。我尝试过在百度上寻找解决方案,但找到的资料中说的方法都试过了,发现都是无法返回正确的状态码的。
最后,只好自已摸索了。经过多次尝试,总算实现了。现在把实现的方法总结出来,供大家参考:
解决方法:
在项目根目录下新建global.asax文件,并在global.asax文件的application_error()方法中写入相应的处理代码即可,无需在web.config中做任何自定义错误页面的设置。
提示:此方法仅在web form项目中测试可行。基于mvc架构的项目处理机制可能有所不同,则仅供思路参考。
void application_error(object sender, eventargs e) { httpexception error = server.getlasterror() as httpexception; if (error != null) { var statuscode = error.gethttpcode(); if (statuscode == 500) { response.statuscode = 500; server.clearerror(); server.transfer("~/500.htm"); } else if (statuscode == 404) { response.statuscode = 404; server.clearerror(); server.transfer("~/404.htm"); } else if (statuscode == 403) { response.statuscode = 403; server.clearerror(); server.transfer("~/403.htm"); } } }
效果图:
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
asp.net搭建博客,使用BlogEngine.NET+MySql搭建博客
网友评论