不少網站管理者以為,主機後台裝好憑證、網址能打出https,WordPress SSL設定就算完成了。其實憑證只解決了伺服器能用加密連線回應這件事,WordPress記得的網址、資料庫裡多年累積的內容、佈景主題與外掛的設定,甚至網站前面的CDN,都還停留在http。憑證申請與安裝交給主機後台處理即可,這篇只談裝好之後WordPress這一端要依序完成的調整:後台網址怎麼改才不會把自己鎖在門外、舊網址怎麼安全置換、混合內容怎麼追到源頭、轉址怎麼設才不會繞圈,以及收尾的Search Console與網站地圖。
憑證裝好只是第一步:WordPress端還沒改好時的症狀
WordPress這一端還沒調整好,通常會出現幾種症狀:用https開啟首頁,網址列卻沒有鎖頭或帶著警告標示;部分圖片顯示不出來、版面樣式跑掉、選單或輪播失效;登入後台送出帳號密碼後,被導回http的網址,甚至一直回到登入畫面;聯絡表單送出時,瀏覽器提醒表單不安全。
原因各不相同。沒有鎖頭與樣式跑掉,多半是頁面還在用http載入圖片、樣式表或腳本,被瀏覽器擋下一部分;登入被導回http,通常是WordPress記錄的網站網址仍是http;表單警告則是送出的目的地還寫著http。症狀也不一定每頁都有,首頁乾淨不代表舊文章、商品頁或活動頁沒問題,檢查時請用無痕視窗把首頁、文章頁、分類頁、聯絡頁與登入頁都開一次。
後台「WordPress位址」與「網站位址」改成https的時機與備援做法
後台「設定」裡的「一般」頁面,有「WordPress位址(網址)」與「網站位址(網址)」兩個欄位,前者是程式檔案所在位置,後者是訪客看到的首頁網址,多數網站兩者相同。把這兩欄改成https是整個調整的核心,WordPress之後產生的連結、登入轉址、網站地圖與標準網址都以這裡為準,介面名稱可能隨版本調整。改之前,先在瀏覽器直接開啟https版本確認沒有憑證錯誤,也要確認www與子資料夾的寫法跟主機實際提供的一致,差一個字就可能造成轉址錯誤。儲存後被要求重新登入是正常的。
萬一改錯進不了後台,可以用主機的檔案管理員或FTP打開網站根目錄的wp-config.php,加入WP_HOME與WP_SITEURL兩個常數指定正確網址,它們的優先順序高於後台欄位,設定後兩個欄位會變成灰色無法修改;也可以進資料庫管理介面,在選項資料表修改siteurl與home兩筆紀錄。不論哪一種,動手前都先把原本的檔案或資料表另存一份。
資料庫裡殘留的http舊網址:先完整備份,再批次置換
後台網址只影響之後產生的網址,資料庫裡既有的內容不會跟著變:文章裡插入的圖片早已把完整網址寫進內文,手動貼上的內部連結、選單的自訂連結、小工具與外掛設定裡的網址也都還是http。置換前務必完整備份資料庫與網站檔案,並確認備份真的能還原,條件允許就先在測試環境演練。置換時掌握幾個原則:
- 搜尋字串要包含自己的網域,只把「http加上自己網域」換成「https加上自己網域」,不要把所有http一律替換,以免改壞外部連結。
- 有www與沒有www的寫法都要搜尋。
- 不少設定以序列化格式儲存並記錄字串長度,直接用資料庫的文字取代指令會讓設定失效,要用能處理序列化資料的方式,例如WordPress官方命令列工具WP-CLI的搜尋取代功能。
- 頁面編輯器常把版面存成JSON,斜線前面多了反斜線跳脫,要再用跳脫後的寫法搜尋一次。
- 文章資料表的guid欄位是內容識別碼,一般建議不要更動。
正式寫入前先用只預覽的模式跑一次,看影響了哪些資料表、各有多少筆,數量不合理就先停下來檢查。完成後清除快取,抽查幾篇年代較久、圖片較多的文章。
混合內容的成因與排查:用開發者工具追到源頭
混合內容是頁面透過https載入,裡面引用的資源卻仍走http。對WordPress網站來說,關鍵是追出這個http網址由誰輸出,因為它可能來自文章內文、佈景主題、外掛或外部嵌入碼,修正位置完全不同。打開瀏覽器開發者工具,「主控台」會列出被封鎖或警告的資源網址;切到「網路」分頁重新整理,篩選出不是https開頭的請求,就能看到發出請求的檔案。也可以檢視原始碼,搜尋http加上自己網域的字串,看它落在頁首、內文還是頁尾。
接著用出現位置反推來源:只在某幾篇文章出現,是內文舊資料,補做資料庫置換即可;每頁頁首頁尾都有,多半是佈景主題設定或小工具;只在套用某種版型的頁面出現,要往頁面編輯器的資料找;指向別人網域的,是外部嵌入的影片、地圖或字型,要換成對方的https版本,對方不支援就更換來源或移除。瀏覽器通常直接封鎖http的腳本與樣式表,圖片則可能自動改用https或只顯示警告,實際行為會隨版本調整。
佈景主題、外掛與頁面編輯器裡寫死的http資源
有些http網址不在文章裡,而是寫在程式檔或設定裡:佈景主題範本直接寫死的標誌或字型網址、樣式表中背景圖片的完整網址、自訂器的「額外CSS」、佈景主題面板上傳的標誌與網站圖示、外掛設定裡的轉跳網址與社群分享預設圖片。寫在檔案裡的部分資料庫搜尋找不到,要用檔案管理員或下載到電腦全文搜尋;修改時盡量改在子佈景主題,並用WordPress的函式動態產生網址,避免更新被覆蓋。頁面編輯器另外產生的樣式快取檔,也要到編輯器的工具設定重新產生,名稱以各編輯器說明為準。改完後把頁面快取、合併壓縮的樣式與腳本、物件快取與CDN快取都清一次,否則看到的仍是舊版本。
另一類容易漏掉的是第三方串接:金流付款完成的回傳網址、社群登入的回呼網址、表單或購物車的Webhook,往往同時記在外掛與對方的管理後台。對方後台若仍填http,可能出現付款狀態無法回寫、社群登入失敗或收不到表單通知,要兩邊逐一核對。
全站強制轉址與www統一:只在一個層級做,避免迴圈
網址與內容都改好後,再開啟全站強制轉址,讓http請求一對一永久轉到同一路徑的https網址,不要全部導回首頁;順序反過來的話,內容裡的http連結每次點擊都要多繞一次。轉址可以設在部分主機cPanel提供的強制HTTPS開關、Apache的.htaccess、Nginx設定檔、CDN選項或WordPress外掛,原則是只挑一個層級負責,多處同時設定、條件稍有不同,就會互相拋接形成迴圈。
www也要同時定案。先選定正式版本,讓後台兩個網址欄位、轉址規則與憑證涵蓋範圍一致,並讓其他寫法一次就轉到正式網址,例如沒有www的http直接轉到有www的https。最常見的迴圈,是伺服器把沒有www轉到有www,WordPress後台卻填沒有www的版本,兩邊來回拉扯。全站穩定一段時間後再評估是否啟用HSTS,因為瀏覽器會記住只用https連線,設定錯了不容易回頭。
前面有CDN或代理服務:加密模式不一致與「重新導向次數過多」
網站前面有CDN或反向代理時,連線分成訪客到CDN、CDN回主機兩段,加密模式大致分為只加密前段、回主機用http,以及兩段都加密並可驗證主機憑證,名稱以服務商說明為準。典型的「重新導向次數過多」是:CDN只加密前段,用http回主機;主機或WordPress卻強制轉到https,CDN再次用http向主機要資料,形成無限循環。主機已裝好憑證,就把CDN改成兩段都加密並驗證憑證的模式。
另一種情況是加密在代理端就結束,WordPress收到http請求而誤判不是加密連線,自己再發轉址,或讓後台不斷導回登入畫面。這時向主機或CDN確認轉送的標頭,例如X-Forwarded-Proto,再於wp-config.php加入判斷,標頭顯示原始連線是https時,就讓WordPress認定為加密連線。改完CDN設定記得清除CDN快取,避免舊的轉址回應持續作用。
收尾更新與最後檢查:Search Console、網站地圖與設定清單
Search Console的網址前置字元資源會區分http與https,原本只驗證http的話要新增https版本,網域資源則涵蓋不同通訊協定與子網域;接著提交https網站地圖,用網址審查抽查重要頁面,實際以Google官方說明為準,介面名稱可能隨版本調整。
WordPress的網站地圖不論由核心或SEO外掛產生,通常跟著網站位址走,仍要打開確認;實體的robots.txt要手動修改網站地圖網址;曾手動填寫的標準網址、社群分享圖片與結構化資料不會自動變更。站外的Google商家檔案、社群平台連結、Google Ads最終到達網址與GA4資料串流網址也要一併更新。最後逐項確認:
- 後台兩個網址欄位都是https,www寫法與正式網址一致。
- 用無痕視窗開各類型頁面,都有鎖頭,主控台沒有混合內容警告。
- 手動輸入http與不同www寫法,都只經一次轉址就到正式網址。
- 後台登入、表單、測試訂單與社群登入正常,第三方回傳網址已更新。
- 網站地圖、robots.txt與標準網址都是https,各層快取已清除。
- Search Console已有https資源並提交網站地圖,調整完重新做一份完整備份。
常見問題
用外掛自動把頁面上的http換成https,還需要動資料庫嗎?即時替換的工具能讓鎖頭很快出現,適合當過渡,但原始資料沒改,每次載入都多一道處理,停用後問題又回來,也可能漏掉腳本動態載入的資源。穩當的做法仍是從資料庫與設定改正源頭。
為什麼有些頁面有鎖頭,有些沒有?通常是問題只在特定頁面或版型:舊文章沒被置換到、只在部分頁面出現的小工具或廣告區塊、活動頁用了不同的編輯器版型,或快取還停在修改前。逐頁用開發者工具查看並清除快取,就能縮小範圍。
可以只讓後台走https,前台先維持http嗎?FORCE_SSL_ADMIN常數可以強制後台與登入頁走https,但前台維持http,訪客仍會看到不安全提示,表單資料也沒有加密。除非是短暫過渡,建議前後台一起完成WordPress SSL設定。
之後從備份還原網站,需要重做一次嗎?還原的若是改成https之前的備份,網址與後台設定都會回到http,等於要重做。所以調整完成後要立刻建立新的完整備份,並在檔名清楚標示,避免誤用舊版本。
WordPress SSL設定牽涉主機、後台、資料庫、佈景主題與CDN好幾個環節,任何一層沒對齊,都可能出現鎖頭消失或轉址繞圈。創昇SEO提供免費網站健檢,會用https實際開啟你網站的各類型頁面,檢查是否還載入http資源、轉址是否一次到位、網站地圖與標準網址是否已指向https,讓你知道還差哪一步。
如果公司裡管內容的行銷人員、管主機的工程人員與管CDN的人不是同一位,創昇SEO也提供全台免費到府解說,把這次調整涉及的設定位置與先後順序當面講清楚,往後新增頁面、更換佈景主題或串接新服務時,團隊都知道哪些地方要維持https的寫法。
