Site Overlay

学习笔记:WordPress站点http-https重定向循环解决

小白瞎搞,大佬勿喷。给实用主义小白的一篇心得分享.

背景:这几天心血来潮,想把自己网站加载速度慢的问题解决一下,因为linode服务器的本身原因和我个人水平不灵(= = 主要是后者),服务器端暂时不考虑升级了。基友推荐了使用cloudflare进行对网站CDN加速,加速效果显著;今天在深入研究CLoudflare的用户面板,开启了SSL/TLS进行灵活加密。

“传输层安全性(TLS)是用于加密通过Internet发送的数据的协议。TLS源于安全套接字层(SSL),它是第一个被广泛采用的Web加密协议,目的是修复大多数早期协议的安全漏洞。= = 我姑且把它理解为一种加密协议吧!HTTPS实际就传统的http over ssl(基于ssl的http传输)的称谓”

理论上来说服务器端是要配置ssl证书才能实现端到端加密,但由于懒,我选择了cloudflare的灵活加密(访问到cloudflare为https请求,cloudflare从网站拿数据走http)这样能保证用户端为https安全访问,避开了俺因为懒没有给服务配ssl,无法直接向服务器请求https的问题。

随后我尝试加载网站,发现在地址栏边边上显示连接不安全。

经过分析应该是站点元素没有完全走ssl。于是盲人摸象google了“WordPress 设置开启全站 HTTPS ”的方法。登录 WordPress 后台,在设置-常规里将 WordPress 地址(URL)和站点地址(URL)改成了https 链接。(在两个http后加了s)

灾难随即发生了:访问前台和后台都重显示网页重定向。

虽然不太懂,但我基本的F12还是技能点还是亮的,打开控制台刷新分析了一下。

发现问题了嘛,http和https页面反复横跳。

随即前往cloudfare详细看之前的ssl设置,其实有朋友应该能发现问题了,我们访问 Cloudflare 的 CDN 服务器的时候,是通过 HTTPS 访问的,CDN 访问源网站的时候,是通过 HTTP 访问的。

但是我手动设置了网页地址为https。源网站上 HTTP 又自动跳转了 HTTPS,完美的一个循环重定向。就陷入僵局了。

  • 解决方法
  • 1. 要么搞定Wordpress,
  • 2.要么搞定服务器部署ssl,然后将cloudflare的ssl模式调整成完全。
  • 经过几小时的摸索,发现一招致胜可以临时解决重定向。

文件管理找到服务器里  wp-includes/load.php 这个文件,搜索is_ssl找到对应的函数,将return false;修改为return true;

前台后台即恢复正常了

不过长久之计还是给服务器部署上ssl吧,之前上了某人的当,一直以为非常复杂(可能实际原理是这样),但目前针对很多小白的面板,例如俺用的宝塔都支持一键部署了。摸爬滚打,俺现在也成功部署上了,开启完全ssl。美滋滋。

附:通过修改网页数据库更改后台直接操作(因为后台重定向无法正常进入)
通过各种方式访问到网站数据库下,wp-options表中,可进行后台设置值的更改