php页⾯会返回状态200,服务器404错误页⾯http状态返回值为
200的原因解析
今天在⽹上了很多关于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检查⼯具,测试
php好看主页源码⼀下,竟然发现状态码返回的是404,⽽且是系统默认的404错误页⾯。
⽹站资料如下(说明:前两类⽹站空间服务器⼤部分不⽀持,只⽀持.html或htm):
(⼀)Apache下设置404错误页⾯
为Apache Server设置 404错误页⾯的⽅法很简单,只需在.htaccess ⽂件中加⼊如下内容即可:ErrorDocument 404 /notfound.php
注意:
1.切记不要将404错误转向到⽹站主页,否则可能会导致主页在搜索引擎中消失
2.切记不要使⽤绝对URL,如果使⽤绝对URL返回的状态码是“302”+“200”(已测试)
(⼆)IIS/ASP下设置404错误页⾯
⾸先,修改应⽤程序根⽬录的设置,打开 “fig” ⽂件编辑,在其中加⼊如下内容:
<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下设置404静态页⾯
设置静态404错误页⾯的⽅法则⽐较简单,在IIS管理器中右键单击要管理的⽹站,打开“属性”中的“⾃定义错误信息”页,
为“404”设定相应的错误信息页即可。不过,此处在“消息类型”中⼀定要选择“⽂件”或“默认值”,⽽不要选择“URL”,不然,将导致返回“200”状态码。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。