WordPress 如何搬家及換網址

WordPress 如何搬家及換網址

20240319更新:這一篇教學已經全部改寫為更完整簡單的:網站搬家換網址教學,只要 5 個步驟,不用任何外掛

四海為家

用WordPress架站的好處就是你喜歡放哪裡就可以放哪裡,甚至是連網址(域名)一起換都很簡單,這也就是自架站的魅力所在,甚至有所謂的「免空殺手」專門在各家免費主機空間游走。

而高登並不是很推免費空間的,因為既然是不花錢那下場跟放在免費的BSP應該都差不多,甚至於無預警被關站都很有可能,但是不管你是免費空間還是付費主機,搬家的過程其實都差不多的,但是看到許多人搬家之後就會多一篇「Hello World」的文章出來實在是很奇怪,因為搬家這樣子搬就不對了!

備份舊主機的資料

搬家的意思就是把舊主機的資料包括檔案和資料庫搬到新主機空間,所以你在搬家之前一定要確定舊主機裡面的資料都已經備份出來了,現在就讓我們來看看如何搬出舊主機的資料。

備份檔案資料

雖然在cPanel後台的「Files」有「Backups」這個功能,但是這個功能並不適用於不同主機之間的搬家,所以主機的檔案還是乖乖的用FTP程式來備份吧。

請你用FTP程式將所有「主機根目錄」裡面的檔案下載到本機硬碟,要注意到「主機根目錄」一般都不是「FTP根目錄」,兩者不要搞混了,以cPanel來就是「public_html」,Plesk的話是「httpdocs」,至於其他的管理後台程式就看主機商給你的資料了。

備份MySQL資料庫

WordPress網站的組成除了上述的檔案之外,另一個就是MySQL資料庫,而要備份SQL資料庫則是要用主機管理後台的phpMyAdmin來作,雖然cPanel後台的Backups那邊也有備份資料庫的選項,但是那是給同一台主機的備份及回存用的,換了一台主機或是主機空間,那SQL資料庫的名稱、使用者這些都會不一樣,所以是不能用那裡回存的。

一樣在cPanel管理後台找到「Databases」這一項裡面的「phpMyAdmin」:

WordPress 如何搬家及換網址

進入phpMyAdmin之後如果你有好幾個資料庫,請選取WordPress所用的資料庫,然後按上面的「輸出Export」來匯出資料庫。

WordPress 如何搬家及換網址

接下匯出選項這裡選「全選」再勾選「下載儲存」然後按「執行」。

WordPress 如何搬家及換網址

將.sql資料庫檔案存至本機磁碟備用。

WordPress 如何搬家及換網址

新家的準備工作

接下來在你要搬去的新主機空間要先作一些準備動作:

一.DNS更新:

如果是原網址不動的搬家,那就要將你的DNS主機指向新的主機,然後到新主機空間新增這個網址的帳號,如果是新買的就設為主帳號,或者也可以設成「附加網域Addon Domain」(這一項就是國外主機的特點了),但是不是用「寄放網域Parked Domain」喔,那是暫時逃難用的,我會另外在專門談主機的那一站再發文詳細說明。

還有DNS的更新是要時間的,像這一次高登工作室的搬家,有的ISP的DNS主機花了三天的時間才更新完成,所以在這個時候可能有些人會連到你的舊主機,有的人會連到你的新主機,因此網站先不要有太多的更新動作,另外這一次好像有兩位讀者留言在舊主機那裡了,所以留言不見了請不要見怪喔!

二.新增資料庫:

一樣在cPanel管理後台的「Databases」找到「MySQL Database Wizard」這一項,再來輸入資料庫名稱、資料使用者名稱及密碼這些資料。

WordPress 如何搬家及換網址

然後在使用者權限這裡勾選「ALL PRIVILEGES」指派所有權限新增一個資料庫,記得要記下新的資料庫的名稱這些資訊(一定會跟原來的不一樣)。

WordPress 如何搬家及換網址

三.更改wp-config.php設定

因為新家跟舊家的SQL設定一定會不一樣(除非你是自己架站才可能設一樣),所以要先把網站檔案裡面的「wp-config.php」拿來改成新主機的設定,要改的地方有:

<code>
define('DB_NAME', '新的資料庫名稱');
define('DB_USER', '新的資料庫使用者'); 
define('DB_PASSWORD', '新的資料庫使用者密碼');
define('DB_HOST', 'localhost'); 
</code>

最後這一項「DB_HOST」不一定要改,像高登之前試過的免費空間000webhost還有現在用的NetFirms他們都是網站主機跟料資料庫主機不同台,所以這一項就要改。

變更域名(網址)

有時候搬家也順便換個網址,而這一項工程可能很大也可能很簡單,單就以WordPress變更網址這一項來就,最簡單的作法就是一樣在「wp-config.php」裡面加上二列:

<code>
define('WP_SITEURL', 'http://新的網址');
define('WP_HOME', 'http://新的網址');
</code>

這兩項就是WordPress後台「設定」裡面的「WordPress網址」和「網誌網址」這兩個設定,改這裡就好了不用像高登之前發的另一篇文那樣去改SQL資料庫,算是最簡單的改法。

如果你的網址有更改,那資料庫檔案就還要動一下手術:

請用Notepad++或是EmEditor之類支援UTF8編碼的編輯程式開啟你下載回來的資料庫.sql檔,用一個全部取代的動作將舊網址改成新網址。

例如你的舊網址是:「abc.com」,新網址是「def.com」,那就下一個「http://abc.com」改為「http://def.com」的指令,然後將資料庫檔案另存為其他檔名,以備稍後的回存之用。

這些準備動作都好了之後就可以開始將檔案及資料庫上傳到新主機了。

上傳至新主機

首先將資料庫倒回新的主機,請一樣由後台的管理程式找到「phpMyAdmin」程式。

WordPress 如何搬家及換網址

選到你剛才新建立的資料庫,裡面應該是空的,請你用「輸入Import」資料庫檔案。

WordPress 如何搬家及換網址

選擇你所備份的資料檔案或是已經更改過的資料庫檔案,然後按「執行」倒回資料庫。

WordPress 如何搬家及換網址

完成後應該像這樣子:

WordPress 如何搬家及換網址

再來把整個網站的檔案上傳到新的主機空間根目錄,這樣子就大功告成了!

注意事項及說明

  1. 為什麼不用先安裝WordPress程式?因為這樣子就可以運作了,而且保證跟原來網站的功能一模一樣,你新裝一個WordPress然後再來設定一定會有遺漏的。。
  2. 圖片怎麼辦?如果你是用WordPress後台下傳圖片的,那這樣子是最正確的作法,否則光改圖片網址就改死你。如果是外連圖片的那連改都不用改。
  3. 還有什麼後續要處理的?有!檔案或目錄及sitemap的屬性要重新檢查一下。。
  4. 換網址的話那後續的事情就多了,像網站驗證、部落格觀察、FunP哈部落還有部落軌道之類的一些都要重新再來,所以記得一件事:「要申請網址請考慮仔細一點」!因為最近又有人因為要換網址在傷腦筋!
  5. 不管有沒要搬家,日常的備份一定要作,因為就算是付費的空間還是有出槌的可能,千萬要記得喔!

217 則留言

  1. 高登老師,
    請教您, 您說搬家要先改 wp-config.php 的設定, 可是我的舊資料庫裏面沒有 wp-config.php, 怎麼辦?
    我的資料庫裏有:
    wp_commentmeta
    wp_comments
    wp_contact_form_7
    wp_links
    wp_options
    wp_terms
    wp_term_relationships
    wp_term_taxonomy
    wp_usermeta
    wp_users
    (我租的是Godaddy的虛擬主機)

    • 因為新家跟舊家的SQL設定一定會不一樣(除非你是自己架站才可能設一樣),所以要先把網站檔案裡面的「wp-config.php」拿來改成新主機的設定,要改的地方有

  2. 高登老師,
    不好意思, 再請教您:
    我的wp-config.php 裏面沒有這四行:
    define('DB_NAME', '.....');
    define('DB_USER', '.....');
    define('DB_PASSWORD', '.....');
    define('DB_HOST', '.....');

    有看到 "define" 的, 只有"
    define('AUTH_KEY', '.......');
    define('SECURE_AUTH_KEY', '.......');
    define('LOGGED_IN_KEY', '.......');
    define('NONCE_KEY', '.......');
    define('AUTH_SALT', '.......');
    define('SECURE_AUTH_SALT', '.......');
    define('LOGGED_IN_SALT', '.......');
    define('NONCE_SALT',

    請教老師, 這樣要怎麼改?

  3. 老師,請教您
    原cpanel內的資料是只要上傳'public_html'資料夾內的檔案嗎?
    後續要處理的部份是否有其他篇文章可參考.
    感謝您...

  4. 請問高登老師,如果本來的網站有設定固定網址
    因原本是子公司的的網站,現在要搬回來母公司管理
    因為我目前首頁搬完了,但是其他的頁面會連結404無法連結
    我需要在做什麼設定嗎?
    感謝你

    • 在子公司的舊網站根目錄的 .htaccess 加入
      Redirect 301 舊網址 新網址
      網址前面要 http://
      如果子公司網站的主機已經不存在那就要設法設回來,因為別人會先連到你的舊網址,然後透過轉址找到你的新網址,這個舊網站需要存活幾個月的時間讓搜尋引擎完全將資料轉到新的網址

  5. 我想請教一下

    如果 搬家後 換了網址

    那原本的SEO不就沒了,都要重新開始嗎??

    因為 搜尋引擎收入的是原本搬家前的舊網址...

  6. 高登您好,
    最近因主機到期,想轉移免費的空間試試,原本使用JUST HOST的空間,
    並使用WordPress架站,近日申請byet host的免費空間,來做主機移轉。

    google了一下相關教學,找到您的網站及教學,您清楚的的說明及解釋,
    讓我很快進入狀況並進行移轉的動作。

    目前只移主機,網域(網址)不變,也完成sql的移轉,sql中帳號密碼等資訊的更改、也已成功匯入,DNS的部份也完成,但發覺進入移轉後的網址前台時,會出現完全空白的畫面,而進入後台(wp-login.php)時,則會出現一堆php原碼。從網路找尋相關處理方法,有將 /wp-content/plugins 內資料完全都刪除了,但問題仍存在,不知道高登您是否可以給小弟一些解決方向呢? 無論如何,謝謝您無私的分享,再次感謝!

    ps 所留網址即為問題網址

  7. 老師你好::

    我遇到的問題是 我是用PC當作server來運作我的wordpress,可是最近這台PC掛了(PC好像中毒,所以使用者都無法登入),我想把裡面的資料全部抓出來移轉到新的PC上,請問在無法登入舊的資料庫,要如何把資料抓出來?

  8. 高登老師您好,請教一下您說wordpress改網址只要在wp-config.php輸入那兩行,所以不用下全部取代的指令改SQL資料庫囉?因為您文中兩個方法都附上了,所以有點不知所措,真是不好意思><
    ps.因為我也改了SQL資料庫,結果出現這樣的錯誤:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'f,(36,'home','http://tbds.cu.cc&#039;,'yes'),(37,'category_base','','yes'),(38,'ping_' at line 1
    不知道是怎麼樣的問題呢?先謝謝您喔!

  9. 請教高登老師
    最近我將WORDPRESS搬家,
    使用您所教的方法完全ok~
    但在"前台-首頁"與"後台-控制台"點選"頁面"或"文章"時
    都完全不能正常顯示
    網頁顯示的錯誤訊息如下:
    ------------------------------------------------------
    Not Found

    The requested URL /b8507/ was not found on this server.
    ------------------------------------------------------
    在wordpress固定網址設定方面,
    我網站設定是文章名稱~
    請問這裡是哪的地方沒有設定好了~
    感謝您~
    謝謝~

      • 感謝高登老師回覆
        但是我試了之後,還是不行耶~
        我把"固定網址設定"更改為"預設"
        文章即可正常顯示
        這裡想請問~
        因為我wordpress搬家只有換ip位址,
        在phpmyadmin建立資料庫的連結時也是輸入新ip位址
        還是這樣是不行的,必須要key "localhost"呢?
        想請問這樣會有差別嗎
        感謝您的指導
        謝謝
        謝謝

          • 高登老師您好

            不好意思,我想是我這裡沒有說明清楚,
            wordpress搬家主要更換的是【server主機】與【IP】~
            以下是wordpress網站的wp-config.php設定

            "舊主機"上的wp-config.php設定

            define('DB_NAME', '資料庫名稱');
            define('DB_USER', '資料庫使用者');
            define('DB_PASSWORD', '資料庫使用者密碼');
            define('DB_HOST', '實體IP位置');

            "新主機"上的wp-config.php設定

            define('DB_NAME', '新的資料庫名稱');
            define('DB_USER', '新的資料庫使用者');
            define('DB_PASSWORD', '新的資料庫使用者密碼');
            define('DB_HOST', '新的實體IP位置');

            這樣的設定後,
            新主機與新ip的wp網站文章內容無法正常顯示
            出現下列錯誤訊息
            ---------------------------------
            Not Found

            The requested URL /b8509/ was not found on this server.
            ------------------------------------
            之後我在主控台"固定網址設定"選擇【預設】(原先是:文章名稱)後
            文章內容就可以正常顯示

            請問高登老師
            如"固定網址設定"選擇【文章名稱】後要讓文章能正常顯示
            還需要哪些設定步驟呢

            謝謝您的耐心瀏覽
            謝謝

  10. 高登老師 您好

    謝謝您先前的回覆~

    我查了一下【將該檔案屬性改成 777】~

    這是linux系統的更改方式~

    但wp網站是架設在win系統上

    這裡要請問老師

    我該怎麼跟win系統管理員說

    請他在系統哪裡作設定

    然後網站系統才能正確寫入 .htaccess 檔案

    感謝您

    謝謝

  11. 請問我已成功將空間由a轉到b,
    網址也對應到b完成了,
    問題是,我回過頭想去a的CPANEL後台要怎麼進去呢?
    因為網址已經跑到B去了..
    我試過用A的IP進入,可以到A的CPANEL帳密輸入界面,
    但是原帳密都無法成功登入?
    是我的方法錯了嗎?謝謝

  12. 高登老師您好
    我今天註冊了自己的domain,於是就把原本免費domain的那個wordpress搬家到新的domain。
    主機都是:000webhost.com
    只是同帳號不同的domain搬家
    我綜合了網路上及您的教學,FTP下載整個WP資料,備份SQL,更改完上傳都OK
    新的WP也能顯示(首頁的圖變回預設的),後台也能登入(但是登入後左側的選單顯示不完全,很多字顯示不出來)
    是因為FTP上傳不完整的關係嗎? 在最後上傳WP的資料到新的FTP的時候,明明上面是空的,但是會一直遇到問我要不要覆蓋的狀況,好像是資料上傳會短少(100K只傳了80K這樣)
    我使用的是FileZilla

    想請問高登老師遇到這樣的情況該怎麼辦呢?
    網路上好像都沒有討論這種FTP上傳不完整的(還是其實是其他問題)

    再麻煩老師指點迷津,謝謝!!

      • 好的~"~

        剛後來重新上傳了一次(檔案大小不一樣就覆蓋)
        這次就有95%的完成度了XD
        剩下的是theme的設定值好像沒有跟著過來
        我打開之前先下載到本機端的備份(原網域)
        發現裡面的版本有的檔案就沒有抓下來(好像中文檔名的都出問題)
        theme的設定值全部重調一遍就OK了0.0

        謝謝高登老師!!

  13. 嗨你好
    我的網站搬過一次位置
    從原本的blog資料夾底下搬到外面來
    但目前透過wp後台上傳的圖片
    都還是會跑到舊有資料夾中
    wp-config.php的 define(''WP_HOME','http://www....)也已經改了
    define('WP_TEMP_DIR',dirname(__FILE__).'/wp-content/uploads');
    是不是也要修改?
    謝謝

  14. 老師你好

    之前我的網站網址為http://sims.im.ntust.edu.tw/(這網址有綁固定IP)

    但是資料庫發生一些問題,所以整個移除了,資料也不見了

    現在我想重新架設起來,但是要怎麼將目前http://sims.im.ntust.edu.tw/simslab/wordpress/改成以前的網址http://sims.im.ntust.edu.tw/

    網路上很多方式我都是過了,但仍然不行,請老師幫我解答一下,謝謝!

  15. 老師,

    我wordpress搬家之後,
    到wp-admin 登入時,
    出現"錯誤:Cookies 被阻擋或者你的瀏覽器不支援。你必須啟用 cookies 才能使用 WordPress。"

    要怎麼辦喔?

  16. 老師您好,
    關於搬家目前是已經搬完了,FTP檔案從舊搬到新家,PYPMYADMIN的資料也都輸出匯入到新的裡面,但有幾點還是想確認一下,以免我自已不懂裝懂弄錯了...。

    Q1-舊站FTP的根目錄是www,新站是cPanel,那依老師說的cPanel就是public_html,是不是意思我原本舊站是www然後新站的www要改名成public_html,把www底下所有檔案都放進public_html裡面?

    Q2-wp-config.php已經有做修改,但其中的DB_HOST有點看不懂,這個我該去哪邊看我是否要修改?

    Q3-搬完家後雖然網站看似一模一樣,可是網址部份卻有點問題,假設舊站文章是WWW.123.COM/111,搬到新站後雖然已經改成WWW.456.COM/111,到這都是OK的,但我的網站大多是一篇文章裡面有超連結很多其它文章且我有用固定網址,文章數量也不少,除了超連結手動一篇一篇修改連結外,還有沒有其它可挽救的方法呢?目前點進一個已經是正確網址的文章,然後再點文章裡的其它文章連結,連的都是舊站的文章,實在不知道該怎麼辦了..

    Q4-最重要也讓我最慌張的就是我後台進不去,一直出現錯誤,是不是我哪邊沒有設定好呢?

    • 1. 把你原來 www 底下的檔案搬到 public_html 底下,不是叫你去動資料夾的名稱
      2. 一般的 wp-config.php 都不會有這二行,請你加上去
      3. 網址要用我另一篇更換圖床的方法在 phpMyAdmin 下指令,如果你看不懂指令是什麼意思最好不要硬上,因為後果會比你現在這樣嚴重
      4. 你 wp-config.php 設好後台應該就進得去了

      如果還是搞不定我有收費幫人搬哦

  17. Hi 高登老師,

    WordPress搬家,我推薦Duplicator外掛(免費),幾乎是一鍵打包/部署 ~

    老師文章有個錯字:許多人搬家之後就會多一篇「Hellow World」的文章出來 <--是Hello?

    非常同意不要用免費空間、BSP,因為 網址=資產 阿!

    我剛寫了「一條龍」式的教學,從當部落客、架設WordPress網站、安裝Yoast SEO、使用Google行銷工具等:
    https://daotw.com/如何經營個人部落格-並賺錢/

    此文,若對高登老師的讀者有幫助,還請老師連結一下喔~

    先說聲謝謝,我們一起幫大家自行架站。

    張道桓

  18. 您好,我想把我的網頁從原本的hosting換到bluehost,並按照您這篇文章做搬家的動作,我把wp-config和sql都設定完畢,網頁是連的進去並且可正常顯示大部分的圖片,但有些圖片卻無法正常顯示。
    另一個問題是無法進入wp-admin的管理後台,打開頁面一片空白什麼都沒有。
    不曉得是哪個部分出了錯誤?

      • 請刪除 .htaccess 檔試試
        還有主機後台會有 Apache 的錯誤報告,你可以提供給 bluehost 的客服看看
        如果連用英文問客服都不會那你可能不適合用便宜的美國主機哦

  19. 老師
    我想請問一下我把我的網站從遠本的空間搬到我新租用的空間,網址也更換
    可是移過去後後台wp的帳號密碼卻不能登入(原本的網址可以正常登入),複製
    過去的網站照理來說wp後台的帳號密碼都會是相同的是嗎??

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料