在上一篇文章中,我分享了如何使用 Cloudflare Pages 部署网站的完整流程。但实际操作中,我踩了不少坑,特别是在域名绑定和 DNS 配置这块。今天就来聊聊这些真实遇到的问题和解决方案,希望能帮你少走弯路。
💡 背景说明:本文基于我在配置xbmlz.cn和xbkjz.icu两个域名时的真实经历,所有问题都是实际遇到并解决的。
陷阱一:只做 DNS 解析,不做 Pages 绑定
❌ 问题现象
访问网站时出现 Error 522 Connection Timed Out,或者 Cloudflare
提示"主机错误"。明明在 DNS 列表里已经添加了 CNAME 记录,状态也显示"已代理"(橙色云朵),但网站就是打不开。
为什么会这样?
这是我遇到的第一个坑,也是最容易犯的错误。当时我以为只要在 Cloudflare DNS 里添加了解析记录就行了,结果折腾了半天网站还是访问不了。
后来才明白,Cloudflare 的逻辑是"双向确认":
- DNS 解析:相当于在路口立了一块路牌,告诉访客(流量)往哪个方向走
- Pages 绑定:相当于在目的地登记了你的名字,告诉门卫(Cloudflare Edge)这个域名对应哪个项目
如果只做了 DNS 解析,流量虽然到了 Cloudflare,但 Cloudflare 不知道要把请求转发给哪个 Pages 项目,自然就报错了。
✅ 解决方案
- 进入 Cloudflare Dashboard,点击左侧 Workers & Pages
- 选择你的项目(比如我的
xiaobao-astrology) - 点击 Custom domains 标签
- 点击 Set up a custom domain
- 分别添加
www.你的域名.com和你的域名.com - 等待状态变为绿色的 Active
⚠️ 重要提示:www和根域名(@)都要绑定,缺一不可。很多人只绑定了一个,导致另一个无法访问。
陷阱二:域名拼写错误
❌ 问题现象
配置了重定向规则,域名也绑定了,但状态一直显示黄色的"Pending"或"Inactive",SSL 证书也无法颁发,规则完全不生效。
真实案例
这个坑我印象特别深刻。当时在配置 xbkjz.icu 的重定向规则时,不知道哪根筋搭错了,把域名写成了 bkjz.icu,少了开头的
x。
因为配置界面要填的地方很多,来回切换时眼睛都看花了,完全没注意到这个低级错误。结果折腾了一个多小时,重新部署了好几次,状态就是不变绿。
为什么容易出错?
- 域名前缀容易混淆,特别是
x、s这种单字母 - 配置过程中需要在多个地方输入域名,容易复制粘贴出错
- Cloudflare 不会明确提示"域名拼写错误",只会显示"无法验证"
✅ 解决方案
在点击"保存"或"部署"之前,务必仔细核对以下三处的域名拼写:
- 域名注册商(腾讯云/阿里云)显示的域名
- Cloudflare Pages 自定义域绑定的域名
- 重定向规则中填写的域名
💡 小技巧:建议把域名复制到记事本,每次需要输入时都从记事本复制,避免手动输入出错。
进阶配置:301 重定向
域名绑定成功后,还有一个重要的优化:配置 301 重定向,统一 www 和根域名的访问入口。这对 SEO 和用户体验都很重要。
为什么需要重定向?
- SEO 优化:搜索引擎会把
www.example.com和example.com当作两个不同的网站,分散权重 - 用户体验:统一入口,避免用户困惑
- 数据统计:方便追踪和分析流量
配置步骤
在 Cloudflare Dashboard 中:
- 进入你的域名管理页面
- 点击左侧 Rules → Redirect Rules
- 点击 Create rule
方案一:动态重定向(推荐)
这种方式可以保留完整的 URL 路径和参数:
规则名称:WWW to Root Domain
匹配条件:
- 字段:Hostname
- 运算符:equals
- 值:www.xbkjz.icu
URL 重定向(动态):
- 表达式:concat("https://xbkjz.icu", http.request.uri.path)
- 状态代码:301
- 保留查询字符串:开启
方案二:静态重定向(简单)
如果觉得动态表达式太复杂,也可以用静态方式:
请求 URL:https://www.xbkjz.icu/*
目标 URL:https://xbkjz.icu/$1
状态代码:301
⚠️ 注意:URL 末尾的*和$1很重要,它们确保子路径能正确转发。比如www.example.com/about会重定向到example.com/about。
完整配置检查清单
📋 部署前检查
- ✅ DNS 已迁移到 Cloudflare(或添加了正确的 CNAME 记录)
- ✅ 在 Pages 项目中绑定了
www和根域名 - ✅ 所有域名拼写完全一致,没有多余或缺少字母
- ✅ 域名状态显示为绿色 Active
- ✅ SSL 证书已自动颁发(通常几分钟内完成)
- ✅ 配置了 301 重定向规则
- ✅ 测试访问
www和根域名都能正常打开
常见问题排查
Q: 为什么 SSL 证书一直显示"Pending"?
可能的原因:
- 域名拼写错误,Cloudflare 无法验证域名所有权
- DNS 记录配置错误,比如 CNAME 指向了错误的地址
- 域名刚绑定,需要等待几分钟到几小时
解决方法:先检查域名拼写,确认 DNS 记录正确,然后耐心等待。如果超过 24 小时还是不行,可以尝试删除重新绑定。
Q: 重定向规则不生效怎么办?
检查以下几点:
- 规则状态是否为"Active"
- 匹配条件中的域名是否正确
- 浏览器缓存问题,尝试清除缓存或用无痕模式测试
- 规则优先级,确保没有被其他规则覆盖
Q: 部署成功但访问很慢?
这通常不是配置问题,可能是:
- CDN 缓存还没预热,多访问几次会变快
- 网站资源太大,考虑压缩图片和代码
- 开启 Cloudflare 的性能优化功能(Auto Minify、Brotli 压缩等)
写在最后
回顾这次折腾,最大的感受就是:细节决定成败。很多问题看起来很复杂,其实就是一个字母拼错、一个步骤漏掉导致的。
Cloudflare Pages 本身是个很优秀的服务,配置也不算复杂,但对新手来说确实有些门槛。希望这篇文章能帮你避开这些坑,顺利完成部署。
如果你在部署过程中遇到其他问题,欢迎在评论区交流。折腾愉快!🎉
加载评论中...