飘易博客(作者:Flymorn)
订阅《飘易博客》RSS,第一时间查看最新文章!
飘易首页 | 留言本 | 关于我 | 订阅Feed

不存在/删除页面后的404处理方法

Author:flymorn Source:飘易
Categories:网络技术 PostTime:2009-3-9 13:10:03
正 文:
    有不少朋友的网站,对于删除页面或不存在的页面都是简单处理,甚至有很多人根本不考虑自己网站的404页面是啥;这是一个不好的习惯,很有可能对搜索引擎造成很大的干扰,对搜索引擎不友好,SE也没必要对你的网站友好了。

    而对很多站长来说,网站没有搜索引擎带来流量,哪怕再好的酒也怕巷子太深啊。国内很多中小型网站基本采用的是虚拟主机,而这些虚拟主机绝大数是支持asp的主机,这些虚拟主机默认的404页面是一个win系统自带的404错误页面,没有任何处理,对用户是十分不友好。

    很多用户遇上这样的404页面是会毫不犹豫地关闭网页,也许从此就不再访问这个页面了。那么,您也就失去了一个用户。

    那么,有的站长也会在虚拟主机管理面板里设置自己的404页面,如最常用的 404.htm 静态页,这些404页面看上去很美,也对用户十分友好了。但这里非常重要的一点是,您注意到这样的页面其真正返回的网页状态码是http 200 吗?!

    返回http200状态码就表示当前页面是正常的,可以被搜索引擎索引收录;如果你的网站有大量被删除的网页,或改版了,这造成的后果就是产生了大量重复的或空白的网页,这些会严重影响网站在SE当中的排名表现。

    那我们应该如何解决这个问题呢?下面飘易:flymorn仅以 asp 网站程序举例来说明,其他语言 php、asp.net都是差不多的思路。

    对于网站整体的404页面,我们应该在虚拟主机管理面板里把404错误地址设置为:/err404.asp ,这样的动态页面,对于asp网站来说,只有asp页面才能设置404返回状态码,静态页面html是无法通过程序设置的。在 err404.asp 页面里写下这样的代码:

<%
Response.Status="404 Not Found"  '404,跳转
Response.write "<H2>飘易提示:当前页面已经删除或转移啦!2秒钟后将跳转到首页!谢谢~~</H2>"
'Response.write "<meta http-equiv=""refresh"" content=""3;url=http://www.piaoyi.org/index.asp"">"
Response.write "<script>setTimeout(""window.location='http://www.piaoyi.org/index.asp'"",3000);</script>" 'js跳转,延时3s
Response.End
%>

    注意:由于绝大多数用户的客户端浏览器并没有把ie“工具”中的“高级”的“显示友好的http错误信息”前的勾去掉,所以根据 微软的技术文档,我们自定义的错误页面的字节数必须要大于或等于 512字节,才能填充包含足够的字符的服务器发送的响应来覆盖默认的友好错误信息。

    这样的代码你可以加工提示文字,可以改成你想要的效果,并且把页面字节数加大到 512字节以上。这样做的好处:一、对于搜索引擎返回http404错误,告诉SE我的这页面已经不存在了,请从索引里删除;二、对用户友好,提示错误信息,展示网站其他内容,挽留用户。

    对于程序里 如 show.asp?id=1234 的页面,如果你从数据库里删除了 id 为1234的这条信息,那么在页面开始判断的时候,需要加上如下的代码:

<%
if rs.eof and rs.bof then '已删除的信息
call closedb() '关闭数据库连接
Response.Status="404 Not Found" '404,跳转
Response.write "<H2>提示:当前页面已经删除或转移啦!2秒钟后将跳转到首页!谢谢~~</H2>"
'Response.write "<meta http-equiv=""refresh"" content=""3;url=http://www.piaoyi.org"">"
Response.write "<script>setTimeout(""window.location='http://www.piaoyi.org'"",3000);</script>" 'js跳转,延时3s
Response.End
end if
%>

    这样设置后,可以达到同样的效果。大家可以使用专门的检测页面返回状态码的工具检查当前页面的返回状态:HTTP状态码检查工具HTTP Status Codes Checker。关于301、302状态码的设置,可以参考文章 301重定向实现方法,及对网站优化的作用。如果大家有疑问,欢迎在飘易博客发布留言。
作者:flymorn
来源:飘易
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
上一篇:网页HTTP状态码的详细解释
下一篇:百度调高大站子域名权重
4条评论 “不存在/删除页面后的404处理方法”
1 深圳SEO
2009-3-10 1:28:41
好多人说404跳转到首页不好,建议直接在404页面给出首页链接,不跳转要好一些。http://www.qyseo.net
--------------
flymorn:首先要注意404页面自身返回的状态码,如果404页面竟然返回了 http 200 OK 码,这样的情况下再跳转是很危险的。而只有当我们的404页面真正返回了 HTTP/1.1 404 Not Found 码,SE就不会再抓取该页,会认为该页是不存在的,这样的情况下,我们跳转是非常安全的,即使0s跳转也没问题。具体问题具体分析。
2010-10-9 8:50:29
404错误,你访问的页面不存在!
3 asp
2011-1-21 21:37:32
show.asp?id=1234 我是用这个页面代码
为什么打开删除页面,显示404错误页面,没有提示,没有跳转。


2014-10-9 14:59:07
怎么让真是不存在的页面显示404状态呢?,我的首页http://xxluo.com/在这后面乱打字母或数字可以出现404,但是在栏目路径后面乱打就是200,请问怎么弄成404,
http://xxluo.com/android/soft/ 在这个栏目路径后面乱打就不是,只有主页后面乱打可以是404,我的QQ32140096,求帮帮
发表评论
名称(*必填)
邮件(选填)
网站(选填)

记住我,下次回复时不用重新输入个人信息
© 2007-2019 飘易博客 Www.Piaoyi.Org 原创文章版权由飘易所有