这是一篇面向使用Cloudflare(CF)的网站部署者的实用指南,聚焦“页面不存在”非通用404的精准识别与全链路排查解决,先教区分核心问题:是源站端(路径/源IP错误、服务宕机、未放白CF节点),还是CF端(DNS解析异常、防火墙/缓存规则拦截、未及时刷新缓存);接着梳理从CF后台健康面板/规则自查、DNS验证,到源站调试,再到CF端临时/长期调整的完整清晰步骤。
无论是运营Cloudflare(以下简称CF)加速的网站,还是作为访客访问CF站点,遇到“页面不存在(404 Not Found)”的提示都难免让人慌神——明明前一秒还能打开,怎么突然就“消失”了?更麻烦的是,这个404可能是CF的“锅”,也可能是源站的问题,甚至只是你自己的小疏忽,别急,本文带你从识别现象开始,一步步排查并解决问题。
先分清:这404到底是谁的?
遇到问题的之一步,是先看404页面的“样子”——这能帮你快速缩小排查范围:
- CF风格的404:页面带有CF的logo、底部标注“Cloudflare”字样,或者是简洁的白色背景黑色文字(CF默认错误页)——这说明问题出在CF的配置,或者CF和源站的连接上;
- 源站自己的404:页面是你熟悉的网站风格(有自己的logo、导航)——这意味着CF已经成功把请求转发到了源站,是源站那边找不到对应的页面。
先查最简单的:访客端小问题(所有人都能试)
不管你是访客还是站长,先从这些“随手就能做的排查”开始,排除小问题:
- 确认URL没输错:检查链接有没有多余的空格、大小写(部分网站路径区分大小写,比如
/About和/about可能不一样),或者这个链接是不是已经被删除了; - 清除浏览器缓存/换无痕模式:浏览器可能存了旧的404页面,按
Ctrl+Shift+Delete(Windows)或Cmd+Shift+Delete(Mac)清除缓存和Cookie,或者直接开无痕/隐私模式试试; - 刷新本地DNS/换公共DNS:本地DNS解析到了旧的节点也会出问题,Windows用户可以在命令行输入
ipconfig /flushdns刷新缓存;Mac用户输入sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder,如果还不行,可以把本地DNS改成公共DNS(比如114.114.114.114、8.8.8.8); - 换个 *** 试试:比如把WiFi换成手机流量,看是不是当前 *** 的问题。
站长重点看:CF配置问题排查
如果访客端的 *** 都试了没用,而且是CF风格的404,那就要检查CF的后台配置了:
- 检查DNS记录:登录CF后台→“DNS”标签页,确认你的域名A记录/AAAA记录指向了正确的源站IP,有没有误删?同时看 *** 状态:如果是“灰色云朵”(仅DNS),那请求直接连源站,这时候404就是源站的事;如果是“橙色云朵”( *** 模式),才是CF在处理;
- 检查页面规则(Page Rules):CF的页面规则可能会误操作——比如有没有规则把请求重定向到了不存在的页面,或者错误重写了路径?暂时禁用可疑的规则试试;
- 清除CF缓存:CF可能缓存了旧的404页面,在CF后台→“缓存”→“清除所有内容”,或者选择“按URL清除”,输入出问题的路径单独清除;
- 检查防火墙规则:CF的防火墙(Firewall Rules)有没有匹配到这个URL,导致返回404?可以先临时禁用防火墙试试,或者看“防火墙事件”里有没有对应的拦截记录;
- 检查SSL/TLS设置:如果SSL模式设成了“完全(严格)”,但源站的SSL证书有问题,可能会导致连接异常(不过这时候一般是5xx错误,但也可以顺便检查:源站能不能通过HTTPS直接访问?);
- 检查CF Workers:如果你部署了CF Workers,代码里有没有错误处理导致返回404?可以先禁用Workers试试。
最后查源站:如果CF没问题
如果CF配置都对,或者是源站风格的404,那就要看源站了:
- 直接访问源站:把CF的DNS改成“灰色云朵”(仅DNS),或者直接在浏览器输入源站IP+路径,看能不能打开?如果直接访问源站也404,那就是源站的问题;
- 检查源站文件/路径:确认对应的文件有没有被删除、移动,或者路径是不是写错了;
- 检查Web服务器配置:比如Nginx/Apache的虚拟主机配置对不对?有没有重定向规则写错了?比如rewrite规则导致路径错误;
- 检查源站防火墙/安全组:源站的防火墙有没有把CF的IP段给屏蔽了?导致CF连不上源站(不过这时候一般是502/522,但也可以顺便确认);
- 检查文件权限:如果是Linux服务器,确认对应的文件/文件夹权限是否正确,Web服务器(比如nginx、apache)能不能读取到。
遇到CF访问页面不存在,别着急乱改配置——先从“识别404是谁的”开始,再按“访客端→CF配置→源站”的顺序一步步排查,从简单到复杂,大部分问题都能快速解决,如果还是搞不定,可以去CF的社区或者官方文档看看,说不定能找到同款问题的答案。
