去年年末,还分享过一篇《WordPress定时发布文章提示“定时发布失效”如何解决?》的文章,但是最近又遇到了文章定时发布失败的情况,今天恰巧查看防火墙威胁分析,看到了拦截最多的居然是网站服务器IP地址,这是什么鬼?
而且拦截的地址很多都是 wp-cron.php 的(如下面高亮所示):
/wp-cron.php?doing_wp_cron=**********.**********************
也就是说服务器环境、网站文件本身没有任何问题,而是服务器对于自身的一个cron请求被CDN或防火墙拦截了。那么解决思路就出来了:
解决拦截wp-cron两种办法
白名单放行wp-cron
在cdn或防火墙设置规则,将/wp-cron.php写入精准控制当中进行放行。
但是很多免费的CDN服务或防火墙服务不提供精准控制,或者提供的规则条数有限,那么可以试试下面这种办法:
服务器hosts回源绕过
hosts回源是站长排除CDN或防火墙设置错误的基本方式之一,其特点就是可以绕过并直接访问服务器。所以,可以通过hosts回源来对wp-cron开通绿色通道。
- Windows服务器
C:\Windows\System32\drivers\etc\hosts - Linux服务器
/etc/hosts
在hosts文件当中,在最后添加一行,写入自己的IP地址和域名(两者直接有个空格),保存即可。