解决“The palin HTTP request was sent to HTTPS port”故障

2017-10-0809:23:18 4 2,028
摘要

至此两个节日期间遇到的问题,完美解决了!总结一下经验教训那就是当出现故障的时候,不要一味的过分相信网上各类所谓的“解决办法”文章,这些文章大部分是“鹦鹉学舌”式的转载而已,基本都是复制粘贴出来的,我敢说90%以上的人都没有自己亲自实践验证过,剩下的10%就是不是我们遇到的问题造成的,仅仅是错误提示一样而已。所以,遇到故障问题还是要自己静下心来冷静思考,如果有“高手”的话可以简单的陈述请教一下,“高手”的经验有时候会起到“画龙点睛”的神奇作用。

节前明月专门向鸟哥要了 Begin 主题的最新包,准备趁着节假日给我的主站和博客站的 Begin 主题都升级一下,自从明月所有的站点都启用了 HTTPS 后就一直想着要把主题都同步更新到最新版。刚开始启用部署 SSL 还很正常,没有想到的是在更新主题的时候竟然出现问题了。

这次出现问题主要是如下两个地方:

1、站点出现“400 Bad Request”错误,提示“The palin HTTP request was sent to HTTPS port”。

2、 Begin 主题的文章标题右上角的“隐藏侧边栏”按钮失效,点击后会隐藏侧边栏但也会返回主页(具体呈现链接是:'https://www.mydomain.com/#')。

解决“The palin HTTP request was sent to HTTPS port”故障

看到这个,我都晕了!百度、谷歌上的那些所谓的解决办法实在是有太大的误导性了

第一时间给鸟哥 QQ 上留了言,还以为是主题的原因呢,昨天晚上再次排查才发现跟主题的关系真心不大哦。首先第一个问题[站点出现“400 Bad Request”错误],无论是谷歌、百度查询出来的解决方案都是说是 Nginx 配置 SSL 造成的,这让我一阵折腾 Nginx 的配置文档呀,越折腾问题越多,最后直接造成站点“500 错误”了,洗了个头抽支烟冷静了一下,感觉问题根本就不会是 Nginx 造成的,因为同样的其他几个启用了 SSL 的站点一切都是正常的,相关的 SSL 在 Nginx 的配置几乎都是一样的,怎么可能同样的配置出现两种结果呢?这不科学呀!

于是,转过头来仔细的研究了一下 WordPress ,最后决定用大招儿,那就是停用 WordPress 下所有的插件(其实就是在 Linux 控制终端修改一下 wp-content/plugins 目录的名称,让 WordPress 找不到插件而已,然后新建一个空的 plugins 目录),没有想到这个大招儿真的是万试万灵呀,网站竟然恢复正常了。好吧,罪魁祸首就是插件造成的,严格意义上来说应该是启用部署 SSL 后造成插件数据冗余。至于具体是哪个插件,目前不好说。但是感觉缓存插件 W3 Total Cache 和 WPJAM BASIC 的嫌疑最大以及 Custom Post Type Permalinks 也是有这个可能的。其实无论是哪个插件都不重要的,明月感觉最重要的是在部署 SSL 后,一定要记得删除所有插件重现安装一遍,以减少插件数据冗余造成的这种故障隐患,毕竟 HTTPS 后是会影响到全站的 HTTP 调用啥的,所以最保险的就是重装所有插件让插件直接在默认 HTTPS 下启用。

好了,网站终于是恢复正常访问了,那就回过头来解决第二个问题[Begin 主题的文章标题右上角的“隐藏侧边栏”按钮失效],从 1 号升级完主题这个问题就一直存在了,可以说节日期间一直在纠结这个“问题”。鸟哥给我的留言是“代码造成的,只能自己排查”,没办法呀!我采用了最笨的办法,那就是在主题选项里的“广告位”和“定制风格”里所有的自己添加的代码都复制粘贴出来保存主题查找问题出在哪里?

最后找到了罪魁祸首就是下面这货:

  1. <base href="https://www.ymanz.com/" />
base 标记定义和语法

<base> 标签为页面上的所有链接规定默认地址或默认目标。

通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。

使用 <base> 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 <a>、<img>、<link>、<form> 标签中的 URL。

好吧,这是我当时问了防范被恶意 iFrame 框架引用而放的,目前看几乎是没有什么用的,可参考【防止网站被恶意框架嵌入的 JS 代码分享』一文,清楚这行在主题选项——“广告位”下的“需要在页头<head></head>之间加载的广告代码,如无必要不需添加任何东西”里的代码后,文章标题右上角的“隐藏侧边栏”完美恢复了。

至此两个节日期间遇到的问题,完美解决了!总结一下经验教训那就是当出现故障的时候,不要一味的过分相信网上各类所谓的“解决办法”文章,这些文章大部分是“鹦鹉学舌”式的转载而已,基本都是复制粘贴出来的,我敢说 90%以上的人都没有自己亲自实践验证过,剩下的 10%就是不是我们遇到的问题造成的,仅仅是错误提示一样而已。所以,遇到故障问题还是要自己静下心来冷静思考,如果有“高手”的话可以简单的陈述请教一下,“高手”的经验有时候会起到“画龙点睛”的神奇作用。

最后的疑惑,我的博客使用的是 Begin 主题 5.2 版的(2017.07.20),文章标题右上角“隐藏侧边栏”除了点击后可以隐藏侧边栏外,鼠标移动到这个按钮的时候也会自动隐藏侧边栏的。而我主站用的是 Begin 主题(2017.09.24)的最新包,竟然是只能点击后隐藏侧边栏,鼠标移动过隐藏这个就没有了,难道是鸟哥优化了这个功能?

历史文章推荐:

  • 本博客公众号
  • 扫一扫关注!
  • weinxin
  • 本博客小程序
  • 微信内浏览本博客
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  2   博主  2

    • 九哥 九哥 3

      经验之谈,学习了。

      • 懿古今 懿古今 9

        解决问题的思路确实值得学习,网上确实有很多教程都是复制粘贴,我还以为很多只是复制粘贴标题而已

          • 明月登楼 明月登楼 Admin

            @懿古今 嘿嘿 ,应该是规则生效了!至少我可以看到实时评论了!并且可以直接回复了!