确认404错误页面配置是否生效,不能只看浏览器里是否出现了一个“找不到页面”的画面。真正要确认的是两件事:服务器对不存在的地址返回的HTTP状态码是不是404,以及返回的页面内容是不是你配置的那个自定义页面。状态码、响应内容、请求路径三者一致,才算配置实际生效。如果只看到页面好看,却返回200状态码,搜索引擎会把它当成正常页面处理,配置并没有真正生效。
很多人改完404页面后,直接在浏览器访问一个不存在的地址,看到自定义提示就认为完成了。这个判断并不可靠,原因是服务器或CDN可能对不存在的路径做了重写、跳转或兜底返回,浏览器照样能显示内容,但HTTP状态码可能已经是200或302。
另一种情况是,配置只对某个目录或某类文件生效,而你测试的路径恰好命中了别的规则。比如站点根目录下的规则生效,子目录仍走默认错误页;静态文件返回404,而带扩展名或带参数的请求走了重写。此时“页面看起来对”和“配置真的对”是两回事。
最直接的方法是查看响应头里的状态码。可以在命令行执行:
curl -I https://你的域名/一个不存在的路径
重点看第一行返回的是 HTTP/1.1 404 还是 200、301、302。只有404才说明服务器承认这个地址不存在。若返回200,说明请求被兜底页面接管了,需要检查重写规则或CDN的回源配置。
判断结果分三种:返回404且页面内容正确,配置生效;返回404但内容是默认错误页,说明自定义页面没被加载;返回200或3xx,说明状态码配置有问题,需要优先修这一项,而不是继续调页面样式。
不同来源的请求可能走不同链路,时间和人手有限时,按下面顺序检查,先处理影响最大的一项:
如果源站正确、域名访问不正确,问题通常在CDN或代理层;如果两者都不正确,问题在服务器配置或应用框架。这个区分能帮你把修改位置缩小到一处,而不是反复改页面模板。
状态码正确后,还要确认返回的确实是你配置的页面。检查项包括:页面标题、主要提示文字、返回首页或搜索的链接是否指向正确地址。若页面里含有动态数据或用户信息,还要确认这些内容不会在错误页面上泄露。
另外,404页面不应自动跳转到首页。自动跳转常会让状态码变成200或302,也会让用户和搜索引擎无法判断原地址是否真实存在。若业务上确实需要引导,用页面内的链接跳转,而不是服务器层面的强制跳转。
配置生效不等于长期有效。主题更新、插件升级、CDN规则调整、服务器迁移都可能改变错误页行为。可以固定抽查几个不存在的地址,记录状态码和页面内容,发现状态码变成200时及时回查最近的变更。
下一步,先挑一个确定不存在的地址,用curl查看状态码,再和浏览器Network面板的结果对照。两处都返回404且内容一致,这项配置才算真正确认生效;只要有一处不是404,就先修状态码,再谈页面样式。