昨天用站长工具检测徐州网站制作这个关键词时,发现自己网站的404页面设置错误。换了其他几款404检测工具,都提示404页面设置错误,返回状态码不是404,而是200。于是在网上搜索有关404页面返回200状态码的资料,很多网站列出了这个设置错误导致的危害:“当搜索引擎蜘蛛在请求某个错误URL地址得到404状态回应时,即知道该URL地址已经失效,便不再索引该网页,并向数据中心反馈将该URL地址表示的网页从索引数据库中删除,而当搜索引擎对于这个404页面得到的是200状态回应时,则会认为该url地址是有效的,便会去索引,并会将其收录到索引数据库,这样你的所有错误页面对于搜索引擎来说都是不同url地址内容相同的页面,这会导致出现大量重复页面,会大大降低网站质量的评分,甚至直接降权。”看到“降权”二字,顿时一阵手足无措。我的404是虚拟主机里自带的功能。如下图:
  我用的windows的虚拟主机,系统默认的404是“HTTP 错误 404.0- Not Found 您要找的资源已被删除、已更名或暂时不可用。 ”后来恢复这个默认的404页面,再用工具检测返回的状态码就是404了,不过这个出错提示页太难看了。我原来使用的是“使用web目录中的404.htm文件来自定义内容”这个选项,还特地做了一个精美的404.htm,当时随便输入一个错误的网址,看到正常跳转到这个404页面,就没再多考虑,不曾想这个404页面返回的状态码其实是‘200’。后来在网上找到了解决办法,把404指向web目录中的404.php,然后在404.php这个页面里加上“header('HTTP/1.1 404 Not Found');header("status: 404 Not Found"); ”这两句代码,让它强制返回404状态码。再输入错误的网址,正常跳到这个自定义的404页面,提交检测,也顺利通过检测。所以正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回“404”错误代码,而不是200或其他的。不仅要告诉用户该页面不存在,也要正确的让搜索引擎知道这是404错误页面而不是一个正常的页面。