CloudFlare WAF自定义规则仅单个WordPress域名生效问题求助
规则应用范围未覆盖目标域名
检查自定义规则的「应用对象」设置:创建规则时若默认仅勾选了第一个域名,后续新增域名未手动添加,会导致规则仅对首个域名生效。进入CloudFlare控制台的WAF→自定义规则,编辑对应规则,确认「应用到」列表包含所有需要拦截的域名。域名未开启CloudFlare完全代理
确认其他域名的CloudFlare状态为橙色云朵(完全代理)。若显示灰色云朵(仅DNS解析),请求会直接到达源服务器,不经过CloudFlare边缘节点,WAF规则自然无法生效。高优先级规则拦截了当前规则触发
检查其他域名是否存在优先级更高的WAF规则(比如允许特定IP、绕过WAF的规则)。CloudFlare规则优先级数值越小优先级越高,若高优先级规则匹配并允许请求,后续的拦截规则不会触发。GeoIP解析或规则语法隐性问题
虽然规则表达式(ip.geoip.country ne "US")逻辑正确,但少数区域的CloudFlare节点可能存在GeoIP解析偏差。可尝试将规则改为(not ip.geoip.country in {"US"}),语法更严谨,避免潜在匹配问题。同时可通过curl -s https://cloudflare.com/cdn-cgi/trace | grep ip获取测试IP,在CloudFlare后台验证IP归属地是否符合预期。WordPress插件或服务器配置绕过代理
检查其他域名的WordPress是否安装了特殊CDN/缓存插件(如WP Rocket的回源设置、Cloudflare插件的旁路规则),这类插件可能跳过CloudFlare代理直接访问源服务器。另外,服务器端的Nginx/Apache规则或防火墙若存在允许所有IP的配置,也会覆盖CloudFlare的拦截动作。
内容的提问来源于stack exchange,提问作者Ping

