前因
作為一名 Wordpress 新手,在自己的VPS或者服務(wù)器用 Wordpress 來建站根悼,通常會遇到很多問題凶异,例如空白頁,內(nèi)部錯誤等番挺,非常惱人唠帝。最近火哥遇到了“將你重定向的次數(shù)過多”問題,這個(gè)問題出現(xiàn)在配置 SSL 和重定向的時(shí)候玄柏。我的服務(wù)器是安裝了軍哥的LNMP一鍵安裝包襟衰,套了 Cloudflare 加速,沒有申請SLL證書粪摘,跑不了 https瀑晒,我的目標(biāo)很明確:
非 www 的URL 301重定向到帶 www 的 URL
非 https:// 的URL 301重定向到 https:// 的 URL
后果
由于沒有玩過 Wordpress绍坝,所以經(jīng)過浸 Y(泡)多年 Wordpress 玩家好友指點(diǎn),通過 lnmp onlyssl 命令苔悦,給域名添加了SSL證書轩褐, 后臺設(shè)置里修改? WordPress地址(URL) 和站點(diǎn)地址(URL)為帶 https:// 的URL,
然后修改 wp-config.php 文件玖详,添加
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
修改 nginx 等等一頓操作把介,結(jié)果還是不行,出現(xiàn)“將你重定向的次數(shù)過多”錯誤提示:
然后各種調(diào)試修改蟋座,又是打不開后臺拗踢,又是不跳轉(zhuǎn)等等等等,耗時(shí)幾個(gè)小時(shí)無果向臀。作為一名帝國和 Joomla 老手巢墅,怎么也沒想明白,咋這么坑呢券膀。君纫。。芹彬。還好經(jīng)過一天的冷靜蓄髓,查閱資料,仔細(xì)分析雀监,終于明白双吆,原來 Wordpress 自帶了url-friendy的 SEO 功能眨唬,類似的 SSL会前,SEO,Cache 類插件也自帶了 SEO 的功能匾竿,而且是使用重定向功能實(shí)現(xiàn)的瓦宜,所以會出現(xiàn)“將你重定向的次數(shù)過多”這個(gè)錯誤,明白了原因那么解決方法就簡單了岭妖。
解決方法
棄用VPS或服務(wù)器上添加 SSL 證書方案临庇,改用 Cloudflare自帶的免費(fèi)SSL證書和重定向功能。
1昵慌、編輯站點(diǎn)的 nginx 配置文件 www.yoursite.com.conf假夺,刪除有關(guān) SSL 的配置語句,確保以下配置語句正確并重啟 nginx:
? ? listen 80;
? ? server_name www.yoursite.com yoursite.com;
? ? index index.html index.htm index.php default.html default.htm default.php;
? ? root? /home/wwwroot/www.yoursite.com;
? ? if ($http_host !~ "^www.yoursite.com$") {
? ? rewrite ^/(.*) https://www.yoursite.com/$1 permanent;}
2斋攀、和上文提到過的一樣已卷,修改 wp-config.php 文件和后臺站點(diǎn)URL等設(shè)置,如果后臺打不開淳蔼,可以通過 PhpMyadmin 修改 Wordpress 數(shù)據(jù)庫里 wp-option 表的相關(guān)字段值來實(shí)現(xiàn)侧蘸。
3裁眯、登陸 Cloudflare ,切換到 SSL/TLS 模塊讳癌,Overview 中選擇 Flexible穿稳。
4、點(diǎn)擊 Edge Certificates晌坤,添加一個(gè)免費(fèi)的證書逢艘,自動續(xù)期的, 打開Always Use HTTPS骤菠。
5埋虹,Wordpress 后臺刪除緩存和瀏覽器緩存,成功娩怎!
總結(jié)
我這個(gè)笨方法的原理就是搔课,服務(wù)器只負(fù)責(zé)來處理不帶 www 的網(wǎng)址跳轉(zhuǎn)到帶 www 的網(wǎng)址,Cloudflare 負(fù)責(zé) http 到 https 的301重定向截亦。當(dāng)然爬泥,我知道老鳥們有其他方法也可以實(shí)現(xiàn),本文只是希望能夠給像我一樣崩瓤,初次接觸 Wordpress 的朋友一個(gè)參考袍啡,多一個(gè)解決問題的方法。
在不斷的修改中却桶,很有可能因?yàn)楦鞣N緩存問題耗費(fèi)很長的時(shí)間來調(diào)試境输,這里有個(gè)好方法,就是禁用各種緩存颖系,比如:
禁用 Wordpress 的 WP Super Cache嗅剖;
打開 Cloudflare 的 Development Mode;
每一次修改后嘁扼,新開一個(gè)瀏覽器的隱私模式信粮;
甚至你也可以每次都清空電腦的 DNS 緩存,換一個(gè)新的IP趁啸。强缘。。