You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决自定义GitHub Pages域名下的ERR_TOO_MANY_REDIRECTS错误?

解决CloudFlare + GitHub Pages 出现的ERR_TOO_MANY_REDIRECTS错误

这种重定向循环问题在CloudFlare配合GitHub Pages时很常见,大多是SSL配置、重定向规则或两端服务的设置冲突导致的,我来帮你一步步排查解决:

1. 先确认GitHub Pages的HTTPS设置

  • 打开你的GitHub仓库,进入Settings > Pages页面,找到「Enforce HTTPS」选项:
    • 如果你之前尝试开启但没成功,现在请确保这个选项是关闭的——因为我们现在用CloudFlare来处理HTTPS,GitHub自带的HTTPS强制会和CloudFlare的代理逻辑冲突,引发循环。
    • 同时确认自定义域名的状态显示正常,没有拼写错误或验证失败的提示。

2. 调整CloudFlare的SSL/TLS模式

这是最容易踩坑的地方,登录CloudFlare后台,进入你的域名管理面板:

  • 切换到SSL/TLS > Overview页面,选择正确的模式:
    • 如果你的GitHub Pages目前只能通过HTTP访问(之前HTTPS配置失败),选Flexible模式(CloudFlare给用户提供HTTPS,后端以HTTP请求转发给GitHub);
    • 如果你的GitHub Pages已经能正常提供HTTPS(即使之前有问题,现在可以再验证下https://yourusername.github.io是否能正常访问),选Full模式;
    • 绝对不要选Strict模式——这个模式要求源站(GitHub Pages)必须有受信任的SSL证书,如果你之前的HTTPS配置没完成,会直接导致重定向循环或证书错误。

3. 检查CloudFlare的重定向规则和页面规则

  • 先看SSL/TLS > Edge Certificates里的「Always Use HTTPS」选项:如果已经开启这个选项,就不要再额外添加强制HTTPS的页面规则,否则会重复触发重定向。
  • 进入Rules > Page Rules,检查有没有设置双向重定向(比如同时设置www.yourdomain.com跳转到非www,又反过来设置非www跳转到www),这种双向规则会直接导致循环。只保留单向规则即可(比如只把非www重定向到www)。
  • 删掉所有不必要的重定向规则,只保留核心的(比如强制HTTPS、单域名跳转)。

4. 验证DNS记录的正确性

  • 进入CloudFlare的DNS > Records页面:
    • 确保所有指向GitHub Pages的记录(A记录或CNAME记录)的橙色云朵图标是开启的——也就是让CloudFlare代理所有请求,不要有部分记录是灰色(直接解析)的情况,混合代理模式会引发重定向异常。
    • A记录要指向GitHub官方提供的IP:185.199.108.153185.199.109.153185.199.110.153185.199.111.153;CNAME记录要指向你的yourusername.github.io,不要写错。

5. 清除缓存(关键步骤)

重定向问题很多时候是缓存残留导致的:

  • 先清除浏览器的缓存和Cookie,用隐身模式重新访问你的域名;
  • 在CloudFlare后台,进入Cache > Configuration,点击「Purge Everything」清除所有缓存,确保旧的重定向规则完全失效。

6. 排查重定向链(可选)

如果还是有问题,可以用命令行工具查看具体的重定向过程:

curl -v https://yourdomain.com

从输出里你能看到请求是如何跳转的——比如如果出现「HTTPS → HTTP → HTTPS」的循环,那就是CloudFlare的SSL模式和GitHub的HTTPS强制设置冲突了,回到第一步调整即可。

内容的提问来源于stack exchange,提问作者Ryan Mcguinn

火山引擎 最新活动