教學筆記 | 科技

如何避免WordPress搬家後產生的破圖

2016-09-01
wordpress搬家後破圖

Zeta最近脫離向別人網域借來的子網域:zetaspace.matsutravel.com.tw
把網域換成免費的TK網域
雖然說是脫離
不過其實也只是從一個屋簷下換到另一個屋簷下
畢竟TK網域主要是提供大家使用
沒有真正的所有權
不過有一個頂級網域感覺總是比較好
最少網址好記多了
而且比較不會讓人覺得自己跟別的網域有關聯

WordPress的搬家原則上並不困難
只要把資料庫和伺服器的資料備份下來
再倒回新的虛擬主機空間
修改一些資料把網站資料和伺服器再重新連結起來就可以了
至於網站內因為網域變動所需要修改的連結
可以從資料庫後台直接下達SQL指令來批次替換掉文章中的舊網址
比如說WordPress就可以這樣下指令(藍色字為舊域名,紅色字為新域名):

UPDATE  wp_posts SET guid = replace(guid, ‘https://zetaspace.tk‘,’https://zetaspace.win‘);

不然現在大家的部落格中都連結了相當多的圖檔
要一個一個手動修改的話就太悲慘了…XD

只是Zeta剛完成搬家動作
發現有一個問題…
那就是新的網站有一些圖片不見了XD



wordpress搬家後破圖
剛完成搬家動作,回來一看,一堆網站縮圖都變成空白了XD

雖然網站的運作整體上沒有任何問題
但是一堆破圖也是很麻煩
而且也不是全部圖片消失
而是部分有
部分顯示不出來
Zeta只好回去再檢查一下
重新看過之後才發現問題所在
原來Zeta以前上傳圖片時
有的檔名為了方便起見
就直接用文章的名稱做檔名
但是在轉移資料的時候
因為編碼的關係
原本的中文都變成亂碼
所以新主機無法讀到正確的圖片連結
所以就出現一堆破圖了…

原本上傳的中文名稱都變成看不懂的英數代碼了...
原本上傳的中文名稱都變成看不懂的英數代碼了…

其實這種情況下產生的破圖
說穿了就是因為英文和中文編碼不同的所造成的
所以我們可以修改FTP軟體的傳輸規則
將傳輸編碼修改為UTF-8
這樣就可以把伺服器中的中文檔名抓下來
這樣就不用再一個一個重新上傳檔案跟修改連結
雖然有辦法可以處理文章中中文圖檔的問題
但在備份跟還原時終究是多一個麻煩
所以Zeta在這邊要提醒大家
畢竟網路環境本來就是建立在英文背景中
中文編碼的問題其實也一直都存在
所以在網路上的檔案
最好都是能夠用英文來命名來避免未來可能碰到的麻煩喔