概述
重定向循環(huán)錯(cuò)誤的兩個(gè)典型原因是:
Cloudflare SSL 選項(xiàng)與源 Web 服務(wù)器配置不兼容,以及Page Rule 配置錯(cuò)誤。
瀏覽器通常在發(fā)生重定向循環(huán)錯(cuò)誤時(shí)顯示錯(cuò)誤消息,例如:
頁(yè)面未正確重定向
ERR_TOO_MANY_REDIRECTS
如需有關(guān)確定源 Web 服務(wù)器是否響應(yīng)重定向的幫助,請(qǐng)與主機(jī)提供商或站點(diǎn)管理員聯(lián)系。
Cloudflare SSL 選項(xiàng)與您的源 Web 服務(wù)器不兼容
重定向循環(huán)的最常見(jiàn)原因是以下原因的組合:
源 Web 服務(wù)器執(zhí)行的重定向,以及Cloudflare SSL 選項(xiàng)與您的源執(zhí)行的重定向不兼容。
原因
Cloudflare SSL/TLS 應(yīng)用中的靈活 SSL 選項(xiàng)通過(guò) HTTPS 加密瀏覽器和 Cloudflare 網(wǎng)絡(luò)之間的流量。但是,當(dāng)啟用靈活 SSL 選項(xiàng)時(shí),Cloudflare 會(huì)通過(guò) HTTP 將請(qǐng)求發(fā)送到未加密的源 Web 服務(wù)器。如果您的源 Web 服務(wù)器配置為在使用靈活 SSL 選項(xiàng)時(shí)將所有 HTTP 請(qǐng)求重定向到 HTTPS,則會(huì)發(fā)生重定向循環(huán)。
使用完全或完全(嚴(yán)格)SSL 選項(xiàng)時(shí),也可能發(fā)生重定向循環(huán)。 唯一的區(qū)別是 Cloudflare 通過(guò) HTTPS 與源 Web 服務(wù)器聯(lián)系,如果源 Web 服務(wù)器將 HTTPS 請(qǐng)求重定向到 HTTP,則會(huì)發(fā)生重定向循環(huán)。
解決方案
通過(guò)以下方法之一解決重定向循環(huán):
1.(推薦)從源 Web 服務(wù)器配置中將 HTTPS 移到 HTTP 或?qū)?HTTP 移到 HTTPS 重定向。例如:
Apache - RewriteRules
nginx - 重寫(xiě)指令和 301 返回指令
如需有關(guān)配置源 Web 服務(wù)器的幫助,請(qǐng)與主機(jī)提供商或站點(diǎn)管理員聯(lián)系。
2.更新 SSL/TLS 應(yīng)用中的 Cloudflare SSL 選項(xiàng):
如果當(dāng)前設(shè)置為靈活,并且在源 Web 服務(wù)器上配置了 SSL 證書(shū),則更新為完全。
(不推薦)如果當(dāng)前設(shè)置為完全,則更新為靈活。
使用關(guān)閉 SSL 選項(xiàng)并通過(guò) SSL/TLS 應(yīng)用在 Cloudflare 中或在源 Web 服務(wù)器中啟用 HSTS 也會(huì)導(dǎo)致重定向循環(huán)。將 SSL 選項(xiàng)調(diào)整為靈活或完全,或禁用 HSTS。
Page Rule 配置錯(cuò)誤
原因
如果使用轉(zhuǎn)發(fā) URL 設(shè)置配置了兩個(gè)有沖突的 Page Rule,則也會(huì)發(fā)生重定向循環(huán)。例如,一個(gè) Page Rule 將 a.example.com 的流量重定向到 b.example.com,另一個(gè) Page Rule 將 b.example.com 重定向到 a.example.com。
解決方案
檢查 Cloudflare Page Rule 應(yīng)用中的規(guī)則,確認(rèn)是否存在兩個(gè)規(guī)則配置為相互轉(zhuǎn)發(fā)流量。
為了減少重定向循環(huán)和混合內(nèi)容錯(cuò)誤的可能性,Cloudflare 建議 Wordpress 用戶在其源 Web 服務(wù)器上安裝 Cloudflare WordPress 插件,并在插件中啟用 Automatic HTTPS Rewrites 選項(xiàng)。或者,Cloudflare 建議使用 SSL Insecure Content Fixer 或 Really Simple SSL 插件。