今天在网上找了很多关于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”状态码。