配置了阿里云 CDN 或者全站加速后,使用浏览器进行访问,出现如下错误提示。
XXX.XXX.XXX 将您重定向的次数过多。
尝试清除 Cookie.
ERR_TOO_MANY_REDIRECTS

一、问题原因
源站开启了 HTTP 重定向至 HTTPS 的功能,并且 CDN 控制台上配置的回源端口为 80。在这种情况下,由于 CDN 回源端口为 80,客户端无论是通过 HTTP 还是 HTTPS 访问 CDN 加速域名时,CDN 在回源的时候都是使用 HTTP 请求源站,此时会触发源站的 HTTPS 强制跳转逻辑,然后源站会要求 CDN 重新发送一个 HTTPS 的请求,但是 CDN 回源的时候仍然会发送 HTTP 回源请求,然后再进行跳转,以此类推,就会出现反复重定向问题,最终导致出现报错。
二、解决方法
(一) 方法一
登录 CDN 控制台,在域名管理页面单击目标域名对应的管理,然后单击 修改配置,将 CDN 的回源端口设置为 443,并单击 确定。设置为 443 端口以后,CDN 回源时会以 HTTPS 协议请求源站,就不会触发源站的强制跳转逻辑。

(二) 方法二
将协议跟随回源设置为 “跟随”。设置为跟随以后,源站发起 HTTPS 重定向以后,CDN 回源协议跟随为 HTTPS 回源。
登录 CDN 控制台—> 在左侧导航栏,单击域名管理—> 在域名管理页面,单击目标域名对应的管理—> 在指定域名的左侧导航栏,单击回源配置—> 在回源协议区域,打开回源协议开关—> 单击修改配置—> 在静态协议跟随回源对话框,选择的回源协议类型为:跟随、HTTP 或 HTTPS。
(三) 方法三
如果不希望将 CDN 的回源端口改成 443,仍希望 CDN 以 HTTP 协议回源,这种情况下可以考虑关闭源站的 HTTP 重定向至 HTTPS 的强制跳转功能。
(四) 方法四
这个不叫解决方法,把你的域名解析迁移至阿里云运解析。我开始解析在 DNSPOD(这个后来被鹅厂收购),不论怎么搞,就是不行,不是这问题就是那问题,后来迁入阿里云解析,使用 CDN 加速,没有一点问题啊,奇怪了。
三 、特别注意
如果按照上述建议修改配置以后问题还未解决,则可能是 301 被 CDN 节点缓存了,需要刷新下 CDN 的缓存 (登录 CDN 控制台 —> 在左侧导航栏,单击刷新预热 —> 在刷新缓存区域,您可以根据所需,配置刷新或预热信息)。下面是一个异常现象的案例,访问 HTTPS 的 URL 以后,301 重定向 Location 到同样的 HTTPS 地址,从 Response Headers 里可以看到 301 被 CDN HIT 缓存住了。