CloudFlare Flexible SSL导致重定向循环

在主站点启用https之后,子站点也一并启用了https,正当乐滋滋地庆幸自己以前有先见之明坚持用relative address时候,突然发现站点不能正常访问,打开任何页面都是”Error 310 (net::ERR_TOO_MANY_REDIRECTS): there were too many redirects”,后来经过排查,是Cloudflare SSL的问题,记录一下以供参考:

Cloudflare Flexssl导致https站点重定向循环

主要表现:

  • 访问任何页面都是重定向循环,包括任何静态文件
  • 去掉ssl访问之后正常,也就是80端口访问http://fumed-silica.net正常,而443端口访问https://fumed-silica.net一定出现循环重定向
  • Cloudflare Flexible SSL导致页面循环重定向
    Cloudflare Flexible SSL导致页面循环重定向

一开始还是各种排查,这次花费的时间比上次更久,因为经过昨天的排查基本确定什么配置都是正常的正确的…… 这次又把排查步骤重新做了一遍 – 除了让朋友同事帮忙测试,因为直接用第三方站点确认了问题。具体过程就不赘述,直接发出罪魁祸首:
How do I fix the infinite redirect loop error after enabling Flexible SSL with WordPress?
没错,问题竟然是Cloudflare!各种服务器/本地电脑检查的我彻底崩了。

解决方法

直接把图里的Flexible修改为Full即可:

cloudflare flexible ssl导致页面重定向循环
cloudflare flexible ssl导致页面重定向循环

出现的原因是服务器使用了跳转代码,强制http跳转到https链接,而Cloudflare 启用Flexible SSL的时候在传输过程中并不能正确识别默认访问http,导致网页在http和https形成死循环。启用FULL SSL之后,Cloudflare默认强制访问https资源,问题解决!

4 thoughts to “CloudFlare Flexible SSL导致重定向循环”

    1. Nginx配置即可实现:

      server {
      server_name .wuce.org;
      listen 80;
      rewrite ^(.*) https://www.wuce.org$1 permanent;
      }

Leave a Reply

Your email address will not be published. Required fields are marked *