通过Cloudflare WAF阻止/wp-login.php访问失败,求排查原因
Cloudflare WAF规则不生效的可能原因及解决方法
Cloudflare规则生效延迟:Cloudflare的防火墙规则并非实时同步到全球节点,通常需要1-5分钟生效。测试前先等待几分钟,再用无痕浏览器访问页面,避免本地缓存或会话干扰。
实际访问IP与查询IP不符:
- 若你的网络支持IPv6,访问请求可能走IPv6链路,而你只封禁了IPv4地址。可登录Cloudflare后台,在「Analytics」→「Firewall」的访问日志中,找到你访问/wp-login.php时的实际源IP,确认是否为IPv6。
- 若使用代理、VPN或运营商NAT转换,查询到的IP可能不是Cloudflare实际接收到的IP,日志记录才是准确的源IP。
规则配置逻辑错误:
- 你设置的是「URI path equals /wp-login.php」,这种精确匹配不会触发带参数的请求(比如
/wp-login.php?redirect_to=xxx)。若要拦截所有指向该文件的请求,建议改用「URI path contains /wp-login.php」或「URI path starts with /wp-login.php」。 - 检查规则是否应用到目标域名:Cloudflare创建规则时,需确认规则的适用范围是当前网站,而非其他关联域名。
- 你设置的是「URI path equals /wp-login.php」,这种精确匹配不会触发带参数的请求(比如
Cloudflare代理模式未开启:如果域名DNS记录是「DNS only」(灰色云朵),流量会直接绕过Cloudflare节点直达服务器,WAF规则完全不生效。需将DNS记录切换为「Proxied」(橙色云朵)模式。
浏览器会话或缓存影响:若你之前已登录WordPress后台,浏览器会保存会话Cookie,即使规则生效也可能直接进入后台。测试时请用无痕窗口,或先清除浏览器Cookie、退出登录后再访问/wp-login.php。
内容的提问来源于stack exchange,提问作者Sam Leurs
相关产品推荐
相关产品推荐

