自定义错误页,别把状态码也改了
配了 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