Cloudflare是国际知名的免费提供CDN(内容分发网络)服务和安全服务商。通过使用Cloudflare CDN访问,可以使我们网站的访问响应速度在全球范围内都能获得质的提升!之前,WPPOP就专门写过一篇开通CloudFlare CDN的加速教程。
然而,有客户在开通使用 CloudFlare 时,反馈访问网站出现了“将您重定向的次数过多”的问题,导致网站无法正常访问。
什么是“重定向的次数过多”?
“重定向的次数过多”通常发生在浏览器在尝试加载页面时被重定向了多次,但未能达到目标页面。浏览器在检测到重定向次数超过预设的阈值后,会停止加载,并显示错误消息。这个问题不仅会影响用户体验,还可能导致搜索引擎爬虫无法正确索引页面,对网站的SEO造成负面影响。
CloudFlare 导致“重定向的次数过多”的常见原因
- HTTP 与 HTTPS 重定向冲突:当站点设置了从 HTTP 到 HTTPS 的重定向,而 CloudFlare 同时也启用了“总是使用 HTTPS” 或 “ 自动 HTTPS 重写” 等功能时,可能会导致无限循环重定向。例如,当一个HTTP请求到达服务器时,服务器可能将其重定向到HTTPS,而CloudFlare又尝试将这个HTTPS请求重定向回HTTP,从而形成循环。
- CloudFlare 的 SSL 配置错误:CloudFlare 提供了多种 SSL 模式,包括“灵活”、“全站”、“全站(严格)”等。如果站点服务器的 SSL 配置与 CloudFlare 的 SSL 模式不匹配,可能会导致重定向错误。比如,使用“灵活”模式时,CloudFlare 会与浏览器通过 HTTPS 通信,但与源服务器则通过 HTTP 通信,如果源服务器也设置了从HTTP到HTTPS的重定向,就会出现循环重定向。
- 网站配置问题:一些网站管理系统,如 WordPress,可能会在后台强制执行某些URL结构或协议。如果这些设置与 CloudFlare 的配置不一致,可能会导致重定向循环。
解决方法
1. 检查后台站点地址设置
登录 WordPress 网站后台,在【 常规 – 设置 】页面,检查其中的 WordPress 地址(URL)和 站点地址(URL)两项中的网址是否为 https:// 开头的,如下图所示:
如果是旧的 http://,则需要修改为 https:// 。
2. 设置 CloudFlare 的 SSL 加密模式
在 CloudFlare 站点管理中找到 配置 SSL/TLS 功能,修改设置 SSL 加密模式。
点击上图中的 配置 按钮,进入SSL/TLS的配置页面,如下图所示:
CloudFlare 提供的 自定义 SSL/TLS 加密模式有以下几种:
- 严格(仅 SSL 源服务器拉取):在 CloudFlare 与您的源服务器之间强制进行加密。使用此模式可以确保与您的源服务器的连接始终是加密的,不考虑您的访问者的请求。
- 完全(严格):启用端到端加密,对源服务器证书强制执行验证。使用 CloudFlare 的源服务器 CA 为您的源服务器生成证书。
- 完全:启用加密端到端。当您的源服务器支持 SSL 认证但未使用有效的公开可信的证书时,使用此模式。
- 灵活:仅在访问者与 CloudFlare 之间启用加密。这可以避免浏览器发出安全警告,但 CloudFlare 与您的源服务器之间的所有连接均通过 HTTP 建立。
- 关闭(不安全):未应用加密。关闭 SSL 将禁用 HTTPS,浏览器同时会显示警告,指出您的网站不安全。
一般默认为 灵活 加密模式。但是,在 WordPress 搭建的网站环境下,使用 CloudFlare 时,在 选择加密模式 中,选择使用 自定义 SSL/TLS,并使用里面的 完全(Full),或者 完全(严格)(Full(strict))的加密模式。
3. 清除 CloudFlare 缓存
以上调整好 CloudFlare 提供的 自定义 SSL/TLS 加密模式后,还需要清除 Cloudflare 缓存数据。
在 CloudFlare 站点管理中找到 缓存 – 配置 页面,点击 清除缓存 中的 清除所有内容 按钮。如下图所示:
至此,CloudFlare 导致的 WordPress网站“将您重定向的次数过多”问题就解决了。其实,“重定向的次数过多”是使用 CloudFlare 时遇到的常见问题,通过排查调整 CloudFlare 的SSL/TLS配置、服务器设置和网站的URL配置,找到导致问题的关键点,再依次排查解决就行。
Cloudflare 还提供安装 WordPress Cloudflare 插件以方便配置和直接在WordPress网站后台进行管理查看。一键单击即可安装专为 WordPress 平台开发的设置。
Cloudflare CDN插件下载地址:https://wordpress.org/plugins/cloudflare/