您的位置: 首页>>新闻动态>>小鹅通动态

如何正确处理HTTP404错误页面

作者: 来源: 时间:2010-01-06

    关于处置 404 错误页面有不少方法。这里主要讲的处置这个问题的时候不只考虑用户还有考虑到搜索引擎,也是 seo 正确处置方式;以下是从网络上整理出来的信息。希望对大家有所帮助。

对 HTTP404 状态码的理解

    HTTP 404 错误意味着链接指向的网页不存在即原始网页的 URL 失效,这种情况经常会发生,很难避免,比如说:网页 URL 生成规则改变、网页文件更名或移动位置、导入链接拼写错误等,导致原来的 URL 地址无法访问;当 Web 服务器接到类似请求时,会返回一个 404 状态码,告诉浏览器要请求的资源并不存在但是 Web 服务器默认的 404 错误页面,无论 Apach 还是 IIS 均十分简陋、呆板且对用户不友好,无法给用户提供必要的信息以获取更多线索,无疑这会造成用户的流失。

    因此,很多网站均使用自定义 404 错误的方式以提供用户体验防止用户流失。一般而言,自定义 404 页面通用的做法是页面中放置网站快速导航链接、搜索框以及网站提供的特色服务,这样可以有效的协助用户访问站点并获取需要的信息。

HTTP404 对 SEO 影响

    自定义 404 错误页面是提供用户体验的很好的做法,但在应用过程中往往并未注意到对搜索引擎的影响,譬如:错误的服务器端配置导致返回 “ 200 状态码或自定义 404 错误页面使用 Meta Refresh 导致返回 “ 302 状态码。正确设置的自定义 404 错误页面,不只应当能够正确地显示,同时,应该返回 “ 404 错误代码,而不是 200 或 “ 302 虽然对访问的用户而言, HTTP 状态码究竟是 404 还是 200 来说并没有什么区别,但对搜索引擎而言,这则是相当重要的

一 ) 自定义 404 错误页返回 “ 200 状态码

    当搜索引擎蜘蛛在请求某个 URL 时得到 404 状态回应时,即知道该 URL 已经失效,便不再索引该网页,并向数据中心反馈将该 URL 表示的网页从索引数据库中删除,当然,删除过程有可能需要很长时间;而当搜索引擎得到 200 状态回应时,则会认为该 url 有效的便会去索引,并会将其收录到索引数据库,这样的结果便是这两个不同的 url 具有完全相同的内容:自定义 404 错误页面的内容,这会导致出现复制网页问题。对搜索引擎而言,特别是 Googl 不但很难获得信任指数 TrustRank 也会大大降低 Googl 对网站质量的评定。为什么会出现返回 “ 200 状态码的情况?请参看下面内容 “ 自定义 404 错误页面的基本原则 ”

    一直在使用 Google Sitemap 当我提交 XML 格式网站地图文件时, Google 会验证我身份以确保是网站合法的管理者。验证方式有两种:上传指定名称的 html 页到网站根目录或者在网页 meta 区域添加一个标识身份的 meta 标签。通常是使用上传 html 网页的方式,但 Google 却提示我网站根目录下找不到这个网页(实际上我已上传,并且通过浏览器可以访问)这是一个很可怕的问题 .

二 ) 自定义 404 错误页使用 Meta Refresh 返回 “ 302 状态码

    经常看到许多网站的自定义 404 错误页面采取类似这样的形式:首先显示一段错误信息,然后,通过 Meta Refresh 将页面跳转到网站首页、网页地图或其他类似页。根据具体实现方式不同,这类 404 页面可能返回 “ 200 状态码,也可能返回 “ 302 但不论哪种,从 SEO 技术角度看,均不是一种合适的选择。

    对 “ 200 状态的情况我上面已经谈过,那么,当 404 页面返回 “ 302 时,搜索引擎会怎么对待呢?从理论上说,对 “ 302 错误,搜索引擎认为该网页是存在只不过临时改变了地址,仍然会索引收录该页,这样,同样会出现类似于 “ 200 状态码时的重复文本问题;其次,以 google 为代表的主流搜索引擎对 302 重定向的适用范围要求越来越严格,这类不当使用 302 重定向的情况存在很大的风险。

确保自定义 404 错误页面能够返回 “ 404 状态码

    自定义 404 错误页面设置完毕后,一定要检查一下其是不是能够正确地返回 “ 404 状态码。可以使用 Server Header 检查工具,输入一个不存在网页的 url 检查一下 HTTP Header 返回情况,确信其返回的 404 Not found

404 错误的处置方式

一 ) 定制 404 错误页面的基本原则

    首先应明确的 404 错误应工作在服务器级而不是网页级。对定制使用动态页面如 PHP 脚本类型的 404 页时,必需确保在 PHP 执行前服务器已经顺利地送出 “ 404 状态码,不然,一旦执行到 ISAPI 级别,返回的状态码便只能是 200 或其他如 “ 302 之类的重定向状态码了

    其次,自定义网站的 404 错误页面时,对设置的错误页面 URL 链接应使用相对路径而不是绝对路径,而且自定义 404 页面应该放在网站根目录下。尽管无效链接可能是多种形式的 URL 但当发生 404 访问错误时, WEB 服务器会自动将其转到自定义的当 404 错误页中,这跟 URL 形似没有关系。

二 ) Apach 下设置 404 错误页面

    为 Apach Server 设置 404 错误页面的方法很简单,只需在 .htaccess 文件中加入如下内容即可:

ErrorDocu 404 /notfound.php

注意:

1. 切记不要将 404 错误转向到网站主页,否则可能会导致主页在搜索引擎中消失

2. 切记不要使用绝对 URL 例如: http://www.yoursite.com/nofound.php 形式 ) 如果使用绝对 URL 返回的状态码是 302 + 200 已测试)

三 ) IIS/ASP.net 下设置 404 错误页面

    首先,修改应用顺序根目录的设置,打开 web.config 文件编辑,其中加入如下内容:

< configur >

< system.web >

< customError mode= On defaultRedirect= error.asp >

< error statusCode= 404 ″ redirect= notfound.asp / >

< /customError >

< /system.web >

< /configur >

注:上文例中 “ error.asp 为系统默认的 404 页面, notfound.asp 为自定义的 404 页面,使用时请修改相应文件名。

然后,自定义的 404 页面 “ notfound.asp 中加入:

< %

Response.Statu = 404 Not Found

% >

这样,便可以保证 IIS 能够正确地返回 “ 404 状态码

四 ) IIS/ASP.net 下设置 404 静态页面

    设置静态 404 错误页面的方法则比较简单, IIS 管理器中右键单击要管理的网站,打开 “ 属性 ” 中的自定义错误信息 ” 页,为 “ 404 设定相应的错误信息页即可。不过,此处在消息类型 ” 中一定要选择 “ 文件 ” 或 “ 默认值 ” 而不要选择 “ URL 不然,将导致返回 “ 200 状态码。

返回列表 相关标签: