Web服务器

服务器404错误页面http状态返回值为200的原因解析

日期:2010/03/22 11:36:37来源: 绿色资源网整理

今天在网上找了很多关于404页面的相关资料,目的就是为了吃透关于404的一些知识。

登陆google管理工具后台,发现网站未验证,并提示:我们检测到您的 404(找不到文件)错误页在标头中返回了 200 (成功) 状态。(当出现这种问题时候 一定要注意了)

用google sitemaps验证自己的网站的时候,如果用html文件验证,始终遇到这样的错误(我们检测到您的 404(找不到文件)错误页面在响应标头中返回状态代码 200 (OK)),而无法完成验证而只能用元标记来验证。

这是主机404文件配置有问题,网友是这么说的,但是本人在404错误页上根据网站资料进行了设置,并在自定义404错误页面设置完毕后,使用Server Header检查工具,输入一个不存在网页的url,查看一下HTTP Header的返回情况,返回的不是“404 Not found”,还是200状态码。

不管在服务器的空间提供商的后台管理如何更改或删除自定义404错误页面设置,效果都一样,http状态返回值都是200,而不是“404 Not found”。后来集中生智,干脆把自己编写的自定义404错误页面删除掉,而服务器的后台自定义404错误设置还是保留404错误页的链接。用Server Header检查工具,测试一下,竟然发现状态码返回的是404,而且是系统默认的404错误页面。

网站资料如下(说明:前两类网站空间服务器大部分不支持,只支持.html或htm):

(一)Apache下设置404错误页面

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

注意:

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

2.切记不要使用绝对URL,如果使用绝对URL返回的状态码是“302”+“200”(已测试)

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

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

<configuration>

<system.web>

<customErrors mode="On" defaultRedirect="error.asp">

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

</customErrors>

</system.web>

</configuration>

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

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

<%

Response.Status = “404 Not Found”

%>

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

(三)在IIS/ASP.net下设置404静态页面

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

相关文章

相关下载

网友评论

我要评论...
没有更早的评论了
取消