先抓住这几个判断点

  • 服务器状态要真实
  • 解释请求对象不存在
  • 提供可选择的下一步
  • 不要把所有错误静默跳首页

404表示服务器可以响应,但没有找到请求的资源。它与整个网站无法连接不是同一类问题,因此页面应该明确告诉用户当前地址不存在。

如果把所有错误都自动跳到首页,用户会以为刚才的链接正常,只是内容发生变化,反而不容易发现旧地址、错误参数或输入问题。

一个有用的404页面至少应提供首页、主题索引和站内搜索等继续路径,让用户自己选择最接近原任务的方向。

把方法放到实际浏览中

文章详情使用白名单slug。传入不存在的slug时,应返回404,而不是用一个默认文章替代,这样不会让错误URL产生重复内容。

GET参数的错误也需要合理处理。能够安全回退的输入可以清理后继续;表示不存在资源的参数则应返回404。

404页面本身不需要被搜索引擎索引,因此可以使用noindex,同时仍允许用户通过页面上的真实链接继续访问。

如何与站内其他页面配合

部署时还需要让Web服务器把未知静态路径或不存在PHP文件交给404页面,避免显示服务器默认错误页。

清楚的404是站点结构的一部分,它帮助用户理解边界,而不是失败后简单隐藏问题。

本条目的页面边界

本条目专门处理“404页面应该告诉用户什么,而不是把人直接送回首页”,用于补充站内使用主题中的具体判断步骤,不扩展到无关业务或虚构数据。