如何避免Cloudflare拦截WordPress的REST API请求?
解决Cloudflare拦截WordPress REST API及Zapier连接故障方案
这类问题通常是Cloudflare的安全规则、WAF、速率限制或者Bot管理策略误拦截了Zapier的请求、站点本地loopback请求和REST API调用,可按以下步骤配置解决:
1. 给REST API路径添加规则豁免
- WordPress的REST API默认路径为
/wp-json/*,你可以在Cloudflare后台添加页面规则,对该路径关闭安全检测:- 规则匹配路径填你的域名加
/wp-json/*,比如example.com/wp-json/* - 对应设置项:安全性级别调为「本质上无害」、WAF设为禁用、速率限制设为禁用、Bot管理设为允许
- 规则匹配路径填你的域名加
- 如果站点启用了自定义REST API前缀,把匹配路径替换成你的自定义前缀对应的通配符路径即可
2. 豁免站点服务器IP和Zapier的请求IP段
- 在Cloudflare的WAF规则、IP访问规则里,把你自己站点的服务器公网IP添加到允许列表,跳过所有安全检查,解决loopback请求被拦截的问题
- 同时把Zapier官方的公开IP段批量添加到允许列表,避免Zapier的同步请求被拦截
3. 调整Cloudflare Bot管理配置
- 如果你开启了Cloudflare的超级Bot fight模式,默认会拦截大量非浏览器的自动请求,你可以添加自定义规则:当请求用户代理包含Zapier的标识、或者请求路径匹配
/wp-json/*时,直接放行不做Bot检测
4. 零信任访问规则豁免(如果启用Cloudflare Access)
- 如果你给站点配置了Cloudflare零信任访问(Access),需要额外在Access规则里添加
/wp-json/*路径的豁免规则,同时放行站点服务器IP和Zapier IP段,避免Access的身份校验拦截自动请求
5. 验证规则生效
- 配置完成后先不要关闭Cloudflare,先做三项测试:
- 运行WordPress站点健康检测,查看loopback和REST API报错是否消失
- 手动发起一次Zapier到WordPress的同步任务,确认不再返回503错误
- 用curl工具直接请求REST API接口
curl -I https://你的域名/wp-json/wp/v2/posts,确认返回200状态码而非503
内容的提问来源于stack exchange,提问作者ac_rmno
相关产品推荐
相关产品推荐

