之前博客一直收到很多来自国外IP的垃圾英文广告评论,每天都要有十几二十条,
就是用 Akismet 反垃圾评论 也挡不住
最后分析访问日志发现是通过了 wp-comments-post.php 这个post提交的垃圾评论,好在lolimeow主题使用了ajax无刷新
方式发布的评论,评论不是调用这个WordPress默认的,所以索性直接把这个文件屏蔽了访问,在nginx下设置规则,访问
返回403禁止访问,从此WordPress再也没有垃圾评论了,连Akismet 反垃圾评论插件都不需要装了

PS:此段设置针对lolimeow主题是有效,如果别的主题评论是调用默认的文档,那会导致用户也不能正常发评论

Nginx 规则设置

如果你用的是宝塔面板,直接在网站的伪静态内添加下面这段规则即可

location ^~ /wp-comments-post.php{
deny all;
}

额外的建议规则一起配置

同时建议把xmlrpc.php也禁止掉,正常我们不需要post发布文章之类的,都是直接博客后台编辑发布文章,所以这个接口也可以直接
403禁止访问掉

location ^~ /xmlrpc.php{
deny all;
}

还有一个json接口会暴露用户信息,一般不需要调用到,也建议一起屏蔽访问,防止信息泄露

location ^~ /wp-json/wp/v2/users/ {
deny all;
}