0%

正威網路行銷工作室,專注於基隆、台北與全台客製化網頁設計,提供專業 RWD 響應式、SEO 搜尋引擎優化、品牌形象設計與網站維護託管服務。

搜尋文章
聯絡資訊
地址基隆市仁二路 220 號 5 樓
追蹤我們

WordPress 網址改錯進不去後台?用 wp-config.php 設定 WP_HOME、WP_SITEURL 救回網站

透過functions修改 WordPress 網址(URL) 和 網誌位址(URL)

WordPress 後台「設定 → 一般」裡有兩個網址欄位。一不小心改錯(多打一個字、http 和 https 弄混),按下儲存之後就會發現:後台進不去、首頁版面全亂、一直被轉到不存在的網址。

網址錯了,你也沒辦法回到後台把它改回來。這篇說明這兩個網址的意思,以及不用進後台就能修正的方法。

兩個網址有什麼不同?

  • WordPress 位址(網址),設定名稱是 siteurl:WordPress 程式檔案實際放的位置,後台、登入頁都從這裡載入。
  • 網站位址(網址),設定名稱是 home:訪客在瀏覽器輸入的網站首頁網址。

大部分的網站兩個都一樣,例如都是 https://example.com。只有 WordPress 裝在子資料夾、卻想讓網站顯示在根目錄時,兩者才會不同:

  • WordPress 位址:https://example.com/wordpress
  • 網站位址:https://example.com

這種安裝方式還要搬動 index.php 並修改裡面的路徑,請參考 WordPress 官方文件〈Giving WordPress Its Own Directory〉,不確定的話兩個設成一樣就好。

方法一:在 wp-config.php 設定(推薦)

用 FTP 或主機的檔案管理員,打開網站根目錄的 wp-config.php,在「That's all, stop editing!」那一行的上面加入:

PHP
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );
  • WP_HOME 對應「網站位址」,WP_SITEURL 對應「WordPress 位址」。
  • 網址最後不要加斜線 /。
  • 開頭的 https:// 或 http:// 要跟網站的 SSL 狀態一致。

存檔後重新整理網站,WordPress 就會改用這裡的設定,後台應該就能登入了。

這兩行的作用是蓋過資料庫裡的設定,並不會修改資料庫。設定之後,「設定 → 一般」裡的兩個網址欄位會變成灰色、不能修改,這也是好處:之後不會有人在後台不小心又改錯。

這兩行要一直留著嗎?

  • 網址確定不會再改:可以一直留著,當作防呆。
  • 想拿掉:要先用下面方法二到方法四的其中一種,把資料庫裡的網址改正確,再刪掉這兩行。直接刪掉的話,WordPress 又會讀到資料庫裡錯的網址,網站會再次打不開。

方法二:用 functions.php 改寫資料庫(舊版文章的做法)

這篇文章的舊版用的是這個方法:在目前使用中主題的 functions.php 最上面(<?php 的下一行)加入:

PHP
update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );

這兩行會直接改寫資料庫裡的設定。使用重點:

  • 加上之後,打開網站或登入頁一兩次,讓它執行。
  • 確認網站恢復後,馬上把這兩行刪掉。留著的話,每開一次網頁就會寫一次資料庫;之後想在後台改網址,也會一直被改回來。
  • 要改的是「目前啟用的主題」的 functions.php,有用子主題的話就是子主題的,改錯主題不會有作用。

這個方法適合當作臨時救援,長期設定請用方法一。

方法三:用 phpMyAdmin 直接改資料庫

主機控制台大多有 phpMyAdmin 可以用:

  1. 先備份資料庫。
  2. 打開網站的資料庫,找到 wp_options 資料表。前綴不一定是 wp_,要看 wp-config.php 裡的 $table_prefix 設定。
  3. 找到 option_name 是 siteurl 和 home 的兩筆資料(通常在最前面幾筆),把 option_value 改成正確的網址。

方法四:用 WP-CLI

主機有提供 SSH 與 WP-CLI 的話,兩行指令最快:

Shell / 終端機
wp option update home 'https://example.com'
wp option update siteurl 'https://example.com'

網站搬家、換網域時要注意

上面的方法都只改了「兩個網址設定」。網站搬家或換網域時,還有這些要一起處理:

1. 資料庫裡的舊網址

文章裡的圖片、內部連結、小工具、主題設定,都還寫著舊網址,要用「搜尋取代」全部換掉:

  • 外掛:Better Search Replace 這類外掛,搜尋 https://舊網址、取代成 https://新網址,先用「試跑」看看會改到多少筆,確認後再正式執行。
  • WP-CLI:
Shell / 終端機
wp search-replace 'https://old.example.com' 'https://new.example.com' --skip-columns=guid

不要用 SQL 的 REPLACE 直接改整個資料庫。WordPress 很多設定是用「序列化」格式儲存的,裡面記錄了文字的長度,網址長度一變,整筆資料就會損壞,小工具、主題設定可能整個消失。上面的外掛和 WP-CLI 都會正確處理這個問題。

2. wp-config.php 裡的網址

如果之前在 wp-config.php 設過 WP_HOME、WP_SITEURL,搬家後一定要跟著改,不然新網站會一直被轉回舊網址。複製一份網站當測試站時也一樣,忘了改的話,測試站會一直跳回正式站。

3. http 與 https

新網址有 SSL 的話,兩個網址都用 https://,並設定 http 自動轉到 https,做法請看.htaccess 強制 HTTPS 寫法。

4. 重新儲存固定網址

搬家後到「設定 → 固定網址」按一次「儲存設定」,讓 WordPress 重新產生網址規則,可以避免內頁出現 404。

5. 清除快取

快取外掛、主機的快取、CDN 都要清除,不然可能還會看到舊網址的頁面。

6. 先預覽再切換 DNS

新主機架好之後,可以先修改電腦的 hosts 檔案預覽新網站,確認沒問題再切換 DNS,做法請看hosts 檔案怎麼改?。

另外,多站台(Multisite)網站的網址存放方式不一樣,搬家步驟比較複雜,不適用本文的方法。

延伸閱讀

換網域、搬主機最怕搬完才發現圖片破圖、後台進不去。正威網路行銷是 25 年經驗的基隆網頁設計工作室,提供網站維護託管,也服務台北與全台客戶,歡迎來聊聊。

分享這篇文章

返回文章列表更多「Wordpress代碼教學」文章

發表留言

還沒有人留言,歡迎第一個分享你的想法或問題。留言經審核後才會顯示,Email 不會公開。

讓我們一起打造
您的專屬網站!