如何修復WordPress混合內容錯誤Mixed Content Error

錯誤型別:
瀏覽器錯誤
錯誤名稱:
混合内容错误
英文名稱:
Mixed Content Error
錯誤描述:
从本质上讲,混合内容错误是指您的WordPress站点通过HTTPS安全地提供一些资源,又通过HTTP不安全地提供一些资源。有时,这些混合内容的一部分甚至不会显示出来,从而导致网站以多种方式出现故障。

000-mixed-content-error

如今大部分網站的連線都是通過SSL證書完成的,如果你的站點還沒配置https,建議也參照“WordPress網站免費SSL證書申請及配置教程”配置一個。

大多數網路主機提供免費的Let’s Encrypt證書和更新,只需點選幾下即可安裝。但是,在設定SSL時,混合內容是一個常見問題,雖然不是什麼大問題,但我們也需要儘快修復WordPress中的混合內容錯誤以保證網站完全安全。

什麼是WordPress混合內容錯誤?

從本質上講,混合內容錯誤是指您的WordPress站點通過HTTPS安全地提供一些資源,又通過HTTP不安全地提供一些資源。有時,這些混合內容的一部分甚至不會顯示出來,從而導致網站以多種方式出現故障。並且存在多個不利的影響:

首先是搜尋引擎懲罰它認為不安全的任何站點,並且會在使用者點選進入站點時發出警告,提醒訪客“您與此網站之間建立的連線不安全”。試想想,有多少個訪客願意冒險繼續訪問此網站。

其次是谷歌和其他搜尋引擎會在排名中懲罰你的網站,因為你的網站不安全,可能包含惡意軟體,而且使用者體驗很差,內容根本沒有載入。

加上WordPress網站上的混合內容錯誤會嚴重影響載入時間,這就使得網站的使用者體驗變得糟糕。

那麼您如何防止這種情況發生並使您的網站成為搜尋引擎和訪客都不受歡迎的一員呢?

如何使用外掛修復WordPress中的混合內容錯誤

修復WordPress混合內容錯誤實際上相對簡單。由於平臺的定製化和靈活性,外掛開發人員基本上已經解決了您可能遇到的任何問題。你只需要知道在哪裡搜尋。對於大多數站點來說,能夠快速安裝和配置外掛是最好的解決方案。

001-Insecure-Content

推薦WebAware開發的SSL Insecure Content Fixer外掛。只需安裝和啟用外掛就可以修復WordPress網站上顯示的任何混合內容錯誤。正如WordPress.org外掛描述所說,“使用簡單修復級別對您的網站進行一些基本修復。” 如果您需要更多,該外掛提供更高階的設定頁面,您可以在其中調整需要保護的內容。

您可以在WP管理面板選單中的設定 – SSL Insecure Content下找到設定 。請注意, 已啟用簡單選擇。

002-Insecure-Content

大多數時候,這是有效的。為了確保它正常工作,我們強烈建議在GT MetrixPingdom上執行頁面速度測試(或此前推薦的15個網站速度測試工具的任意一個)。雖然這些測試本身非常棒,可以幫助識別您網站上的錯誤,但它們都報告不安全/混合內容。因此,如果您確實有任何問題,其中一位會告訴您。

使用這個外掛修復了除Capture All之外的所有錯誤 。根據經驗,自動修復的AJAX呼叫往往會破壞站點功能。但是,其他每個選項都修復了GT Metrix或Pingdom發現的任何問題。

使用SSL Insecure Content Fixer等外掛的最大問題是,如果您停用該外掛,則混合內容修復程式也有可能停用。如果這對您來說是一個潛在的問題,我們也有解決方案。

如何手動修復WordPress混合內容錯誤

與任何其他主要網路應用程式一樣,WordPress 實際上只是伺服器上的一個資料庫。如果該資料庫中的資源仍被標記為 HTTP 並且瀏覽器正在呼叫 HTTPS……這是一個混合內容錯誤。幸運的是,您也可以手動執行一些非常簡單的修復。

在您的WP資料庫中查詢和替換

雖然這也涉及外掛,但它僅用於實際功能,之後可以禁用。在WP.org外掛市場上找到Better Search Replace外掛。

004-Insecure-Content

005-Insecure-Content

在 工具 – Better Search Replace 下(1),您將搜尋域名的不安全例項並將其替換為 HTTPS 版本。在Search for輸入 HTTP://yourdomain.com 和Replace with輸入HTTPS://yourdomain.com

然後,選擇要包括在搜尋中的資料庫表。一般來說,這將是所有這些。因此,單擊頂部,滾動到底部,然後按住 Shift 鍵並單擊最後一個。這將突出顯示列表(3)中的所有表。

我們建議啟用 Run as Dry Run 選項。這樣做將使外掛執行所有操作,但實際上不會儲存更改。它會報告它發現的任何東西。

006-Insecure-Content

如果發現一切都OK,取消選中試執行框執行搜尋並替換。但是,在此之前,我們強烈建議備份您的站點和資料庫。任何時候你需要對資料庫進行修改操作,務必先做備份工作。損壞或處理不當的資料庫是所有WordPress中最難修復的事情之一。

您也可以通過託管儀表板中的phpMyAdmin執行相同的過程,但它沒有試執行功能,並且需要更多的技術知識來實施。對於大部分站長來說,我們更建議使用外掛方法。

更改 .htaccess 檔案

您網站的 .htaccess檔案負責引導流量並允許訪問您網站的元素。您可以通過使用 FileZilla(或其他 FTP 客戶端)或從主機的儀表盤檔案管理器中向.htaccess檔案新增幾行來強制對站點資源使用HTTPS  。

基本上,您將使用 .htaccess進行重定向,因此您現有的內容不會繼續通過 HTTP 載入。

為此,請導航到/public_html 或 根 目錄並在其中查詢 .htaccess 檔案。右鍵單擊它並選擇允許您編輯檔案的選項,如果您使用的是 FTP,它將使用您的預設文字編輯器或整合編輯器(如果您使用主機的儀表板)開啟檔案。

007-Insecure-Content

複製貼上以下程式碼行至</IfModule>標記和#END WordPress行之間

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d </IfModule>
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>

008-Insecure-Content

注:同樣地,建議先對.htaccess檔案備份, 再執行相關操作,以防這些更改出錯。

如果一切正常,您應該不會再看到混合內容錯誤。但是,如果您使用快取外掛,您可能仍會遇到錯誤。如果是這種情況,請確保清除網站的快取並再次嘗試載入您的網站。

小結

如果在WordPress中遇到混合內容錯誤,這並不像聽起來那麼可怕。事實上,它是比較容易修復的WordPress錯誤訊息之一。無論您更喜歡外掛修復還是深入研究WordPress核心檔案,擺脫網站上的混合內容錯誤都是快速和容易的。

評論留言