每个拥有“胖手指”的人在敲错键盘时,都应该看到过404状态代码。它意味着请求的URL地址不存在。然而,与这个状态代码有关的一些技术细巧还不是很清楚。
首先,很少有人能了解,伴随着404状态代码,WEB服务器也能够传送任何HTML内容和202状态代码所做的一样。事实上,人们通常把404和Apache的普通错误页面关联起来。但是这种情况并不是必须的。有些网站自定义了他们自己的404页面,来加强用户体验。更高级的网站甚至可以根据在无效URL地址中输入的关键词的意思,试着给访问者一些建议。
不管404页面是普通的还是自定义的,它都能通知搜索引擎页面不存在;并且还会使得页面从索引中清除。
对静态网站,404错误是自动产生 的只要删除了文件就会产生。不幸的是,许多动态网站根本没有404概念,因为它的实现需要额外的努力。典型情况是当一个产品从数据库中被删除时,产品页面不再被网站的其他页面所链接。然而,这个产品页面可能由于被外部网站页面链接而获得了链接价值,并仍然被搜索引擎索引。
最糟糕的事情就是返回一个带202状态代码的空页面——这经常发生在当某个产品ID在数据库中不再存在时。随着时间推移,结果就是一些空页面被搜索引擎索引,这将导致重复内容问题。其实应该返回404状态代码。再附带一个友好的错误消息。
通常的错误是发送一个“没有找到页面”的消息,那意味着在处理404时却使用200状态代码。WEB主机服务常常允许设置用户定义404页面——也就是当用户请求一个不存在的URL地址时,发送这个页面作为响应。然而,它们可能不会正确设置404状态代码。这可能导致理论上有无限多个重复页面出现在网站中。
故事的中心思想是什么?保持整洁环境。对所有被删除的页面都将返回404状态代码。一些搜索引擎营销人员建议将老的产品重定向至语义相关的产品,而不是返回404状态代码。这将保持链接价值,而404则做不到。在.htaccess中可以完成这个,或者用PHP的301重定向也可以。