標籤:

解決「The palin HTTP request was sent to HTTPS port」故障

節前明月專門向鳥哥要了 Begin 主題的最新包,準備趁著節假日給我的主站和博客站的 Begin 主題都升級一下,自從明月所有的站點都啟用了HTTPS後就一直想著要把主題都同步更新到最新版。剛開始啟用部署SSL還很正常,沒有想到的是在更新主題的時候竟然出現問題了。

這次出現問題主要是如下兩個地方:

1、站點出現「400 Bad Request」錯誤,提示「The palin HTTP request was sent to HTTPS port」。

2、 Begin 主題的文章標題右上角的「隱藏側邊欄」按鈕失效,點擊後會隱藏側邊欄但也會返回主頁(具體呈現鏈接是:mydomain.com/)。

看到這個,我都暈了!百度、谷歌上的那些所謂的解決辦法實在是有太大的誤導性了

第一時間給鳥哥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="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)的最新包,竟然是只能點擊後隱藏側邊欄,滑鼠移動過隱藏這個就沒有了,難道是鳥哥優化了這個功能?

推薦閱讀:

在 WordPress 里,如果我想首頁只顯示每個 category 下最新兩篇文章應該怎麼做?
如何讓小白搭建個人資訊網站?
類似http://nilssvensson.com/這類簡潔的攝影師個人網站如何搭建?是基於Wordpress嗎?
自己製作 WordPress主題需要學習哪些方面的知識?

TAG:WordPress |