
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!」那一行的上面加入:
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 的下一行)加入:
update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );這兩行會直接改寫資料庫裡的設定。使用重點:
- 加上之後,打開網站或登入頁一兩次,讓它執行。
- 確認網站恢復後,馬上把這兩行刪掉。留著的話,每開一次網頁就會寫一次資料庫;之後想在後台改網址,也會一直被改回來。
- 要改的是「目前啟用的主題」的
functions.php,有用子主題的話就是子主題的,改錯主題不會有作用。
這個方法適合當作臨時救援,長期設定請用方法一。
方法三:用 phpMyAdmin 直接改資料庫
主機控制台大多有 phpMyAdmin 可以用:
- 先備份資料庫。
- 打開網站的資料庫,找到
wp_options資料表。前綴不一定是wp_,要看wp-config.php裡的$table_prefix設定。 - 找到
option_name是siteurl和home的兩筆資料(通常在最前面幾筆),把option_value改成正確的網址。
方法四:用 WP-CLI
主機有提供 SSH 與 WP-CLI 的話,兩行指令最快:
wp option update home 'https://example.com'
wp option update siteurl 'https://example.com'網站搬家、換網域時要注意
上面的方法都只改了「兩個網址設定」。網站搬家或換網域時,還有這些要一起處理:
1. 資料庫裡的舊網址
文章裡的圖片、內部連結、小工具、主題設定,都還寫著舊網址,要用「搜尋取代」全部換掉:
- 外掛:Better Search Replace 這類外掛,搜尋
https://舊網址、取代成https://新網址,先用「試跑」看看會改到多少筆,確認後再正式執行。 - WP-CLI:
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)網站的網址存放方式不一樣,搬家步驟比較複雜,不適用本文的方法。
延伸閱讀
- .htaccess 強制 HTTPS 寫法:http 自動轉 https(WordPress、Joomla 適用)
- hosts 檔案怎麼改?網站搬家、DNS 還沒生效前先預覽新網站(Windows/Mac)
- WordPress 網址統一成有 www 或沒有 www:一般設定與 301 轉址完整做法
換網域、搬主機最怕搬完才發現圖片破圖、後台進不去。正威網路行銷是 25 年經驗的基隆網頁設計工作室,提供網站維護託管,也服務台北與全台客戶,歡迎來聊聊。







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