Plainnotes

自定义错误页,别把状态码也改了

2024-01-31 · 2 分钟部署

配了 error_page 404 /404.html;,结果访问不存在的页面返回 200,搜索引擎把大量垃圾 URL 收录了。

因为内部重定向到 /404.html 时,如果这个文件存在并且返回正常,状态码就变成了 200。要保留原状态码:

error_page 404 = /404.html;

等号是关键:= 表示用重定向后的响应替换,但保留原始状态码;=404 则是强制指定。

同样的问题出现在 502 页面:error_page 502 /502.html; 会返回 200,监控就看不到错误了。

检查方法:

curl -sI https://example.com/not-exist | head -1