网上下载了一个 WordPress 主题,其中设置了 404.php 模板,在搜索结果为空时,会默认显示这个 404 页面但是 http 状态码却是 200

这就导致很多黑客利用这个漏洞,刷了大量的恶意搜索词,虽然没有结果,但是因为页面状态码 200 表示正常,就会导致搜索引擎爬取这类 url,导致对网站 seo 效果产生不好的影响。

我们要做的是 404.php 就返回 404 状态码。解决办法是在 404.php 模板的顶部加入如下代码:

status_header(404);
nocache_headers();

再次尝试访问 404 页面,返回的状态码已经更新为:404。