很多朋友知道 MySinaBlog 關閉,急尋搬家方法。由於它是建基於 Movable Type 的服務,最好就是搬家到 WordPress,因為兩者一直有緊密關係。

搬新家是時候考慮購買網域自行架站,以免忍受再次搬家之痛。現時有很多服務供應商都會預先為客戶安裝好 WordPress 網站,例如香港 Scicube(使用我的介紹碼 daisymaris 能讓我獲得少許獎賞)或者國外 Kinsta 等。假設你經已擁有 WordPress 網站或已登記 WordPress.com,即可執行以下動作搬家。

搬家程序

1. 登入 MySinaBlog 後台,再按「文章匯出頁請按此」

 

2. 系統帶你到另外一頁,往下輸入電郵獲取備份檔

 

3. 之後會收到電郵通知下載文章備份檔,留意電郵是否被分到了垃圾郵件框中,因為我的是這樣

 

4. 下載完畢後解壓,會看見一個名為 export 的 folder,內裡和填寫電郵的頁面所談及的內容相同。alubm(不是 album)和 article-gallery 後綴文檔是個清單,搬家時不會用到它們,但可作為一個檢查清單,搬家後核對一下會否有文章未被搬運。而 gallery 檔案夾內放置了你上載到 MySinaBlog 的圖片

 

5. 自架 WordPress 網站請先將圖片以 FTP 上載到伺服器中,假設你不會搞甚麼 CDN 之類,就先上載到 WordPress 本身的圖片庫所在。現在是12月,到 ftp 找 /public_html/wp-content/uploads/2019/12 或者你喜歡的目錄,把所有 gallery 檔案夾的相片上載到那兒

上載圖片後可以測試一下,假設你的網站域名是 babyxyz.com,圖片名稱是 9030-637736.jpg,現在看看這圖片是否於 https://babyxyz.com/wp-content/uploads/2019/12/9030-637736.jpg 網址正確顯示

如果你使用 WordPress.com 的免費服務,可以按「媒體庫」,再按「新增檔案」,拖曳檔案把圖片悉數上傳。留意 WordPress.com 只有 3GB 限額,如你的圖片及影片合共超過 3GB 就不能使用 WordPress.com,又或者要尋找其他方法外連圖片

上載圖片後也可測試一下,假設你的 WordPress.com 是 xxx.wordpress.com,圖片名稱是 9030-637736.jpg,看看這圖片是否於 https://xxx.files.wordpress.com/2019/12/9030-637736.jpg 網址正確顯示

留意12月上載是 https://xxx.files.wordpress.com/2019/12/ 1月上載就是 https://xxx.files.wordpress.com/2020/01/ 不要搞錯

 

6. MySinaBlog 原生圖片路徑長這樣:

http://xxx.mysinablog.com/resserver.php?blogId=9030&resource=637736-babyshark.jpg

xxx 是作者 id、blogId=9030 是博客的數字代號、637736 是你上載圖片後 MySinaBlog 系統自動為它加入的命名編號,而 babyshark 是原始圖片檔案名稱

但備份檔內的圖片變成了這樣

9030-637736.jpg

前面被加上博客數字代號,後面的 babyshark 卻不見了

為了讓圖片能在新網站正確顯示,需要進行檔案轉換

以下內容為處理圖片不順後,致函詢問,獲新浪網工程師教路並作出修改而成:

6.1 【在網上處理檔案】適用於 mt 後綴文檔體積比較細小的網站

6.1.1 到 https://www.freeformatter.com/regex-tester.html 網頁進行文字替換

6.1.2 在 Regular expression 欄位輸入以下內容,請一字不漏 copy and paste

http://.*?blogId=(\d+).*?resource=(\d+).*?\.(jpg|jpeg|png|gif|bmp|JPG|JPEG|PNG|GIF|BMP)(&mode=(preview|medium))?

6.1.3 在 Entry to test against copy and paste 輸入 mt 後綴文檔內所有文字

6.1.4 在Replace with (Optional) 輸入在步驟 5. 上載的圖片路徑位圖,亦即是下面舉例紅色的部份,至於 $1-$2.$3 請不要更改,例如

https://babyxyz.com/wp-content/uploads/2019/12/$1-$2.$3

6.1.5 按 Replace 按鈕後會出現 Replace was successful. 字眼。把下面框框的文字 copy and paste 到新的文字檔案中

6.2 【以 NotePad++ 處理檔案】適用於 mt 後綴文檔體積巨大得以數十 MB 起計,這種 size 的文檔在電腦在記事本開啟已然當機,更莫論 copy and paste 到網頁處理,簡直連網站也打爆,該如何是好?唯有下載軟件進行處理。以下為 Windows 環境的免費處理方法,至於 MAC 由於本人並不常用,所以未有心水軟件推介。

6.2.1 到 Portable App 尋找免費的 Notepad++ Portable 下載(不需安裝,用完刪除不留痕)、解壓並開啟備用

6.2.2 按 Menu Bar 的 File 再按 Open,打開 mt 後綴文檔

6.2.3 在鍵盤上按 Ctrl + End,或者使用進度條查看文檔最底一行號碼是多少,例如下圖就是 446432 行

6.2.4 按 Menu bar 的 Search 再按 Replace

6.2.5 在 Find what: 輸入以下內容,請一字不漏 copy and paste

http://.*?blogId=(\d+).*?resource=(\d+).*?\.(jpg|jpeg|png|gif|bmp|JPG|JPEG|PNG|GIF|BMP)(&mode=(preview|medium))?

6.2.6 Replace with: 輸入在步驟 5. 上載的圖片路徑位圖,亦即是下面舉例紅色的部份,至於 $1-$2.$3 請不要更改,例如

https://babyxyz.com/wp-content/uploads/2019/12/$1-$2.$3

6.2.7 剔 Wrap around,這功能假設你的鼠標在文檔的中央,系統也會由頭做起

6.2.8 Search Mode 選 Regular expression

6.2.9 按右手邊 Replace All

6.2.10 成功後,系統會出現 Replace All: [XXX] occurrences were replaced. XXX 代表經已更改了的連結數量

6.2.11 再按 Ctrl + End,或者接用進度條查看文檔的最底一行號碼是否與 6.2.3 所示的一樣,如果是相同的話,即代表經已成功轉檔。另存新檔進入下一步

6.2.12 如果發現文檔尾部號碼變小而且下截內容不見了,代表你的 mt 後綴文檔體積過份肥大,軟件只能處理前面的資料,後面的未能處理。你需要做的是把已處理好的部份開新文檔整理好並儲存起來,然後為後續內容繼續執行轉檔

6.2.13 留意一篇完整的文章應包含 TITLE、BODY、COMMENT 等部份,只要記著每一篇文章應該由 TITLE 開始到最後的兩間 —– ——– 才為之一篇完整的文章,亦即是圖片標明黃色的部份,整理時就不會有錯漏(嗚謝羊狼二世提供示範圖)

6.2.14 又,使用 NotePad++ 要自行 copy and paste 切割檔案未必是最好的方法,但我嘗試使用其他軟件例如付費的 EmEditor 連打開檔案都出現 error,只好繼續使用免費的 NotePad++。如有更好方法歡迎建議

6.3 完成轉檔後,如果不肯定自己做的是否正確,可以打開新的文字檔,查找一下圖片連結,看看是否經已轉為新的連結

 

7. 在 WordPress 控制台按「工具」,選擇「匯入程式」,看見「Movable Type 與 Typepad」按「立即安裝」,完成後按「執行匯入程式」

或於 WordPress.com 控制台按「工具」,「從完整清單選擇」,看見「Movable Type and Typepad」,再按「執行匯入器」

 

8. 進入「匯入 Movable Type 或 TypePad 內容」頁面,在 Choose File 選擇在步驟 6. 製作的文檔,再按「上傳檔案並匯入」

 

9. 出現「指派作者」頁面,留意「目前作者」是指 MySinaBlog 的作者名稱。如果不作選擇,系統會在 WordPress 中以這個名字新增一個全新戶口,之後需要在「使用者」功能當中選取該使用者及設定新的登入資料。假如你不想開新戶口,可以將所有文章「對應至現有作者」,在下拉選單選取登入者戶口即可。之後按「開始匯入」

匯入需時可能要等一下才成,要有點耐性。完成後出現一系列文章清單,代表匯入成功。擁有多於一個文字檔的話,重覆步驟 7 至 9 直至全部文章匯入

 

10. 查看網站頁面,文章已匯入,留言出現,圖片也完好

 

搬家其他事項

    • 未知因為伺服器還是出現甚麼問題,我發現有幾篇文章在搬遷後不見了。建議大家搬家後有時間核對一下 article-gallery 文檔
    • 如果在文章中曾經連結過其他舊文章,你需要更新連結。至於如何尋找這些舊連結,如果是自架 WordPress 網站,你可以登入 PHPMyAdmin 中查找 wp_posts 數據庫內的 post_content 表單,搜尋 http://[作者id].mysinablog.com 找出文章再進行編輯。不過了解 PHPMyAdmin 確實讓人有技術不友善的感覺,或可考慮使用 Search Regex 外掛操作(參考教學:[WordPress] 用 Search Regex 正規表示法快速大規模搜尋/取代網誌內容、[WordPress] 用 Search Regex 正規表示法,快速大規模搜尋/取代網誌內容)。又或者在 WordPress 外掛搜尋「Broken Link」,使用批量尋找壞死連結的外掛處理
    • 留意 WordPress.com 並不支援安裝外掛,有問題只好自己全手動搞定
    • 如果想純粹測試一下自架網站式搬家,推介使用 DemoWP 的測試服務,可以試到上手才認真做,實在很不錯
    • 在 Google 輸入 「WordPress+新手」有不少新手教程,可以幫助了解 WordPress 這個系統
    • 原本打算寫一下搬家到 Blogger.com 即 Blogspot 的示範,但 import 舊檔時等了20分鐘也未能成功,所以放棄了
    • 假如不想自架 WordPress 網站而媒體又超過 3GB,可否使用免費 WordPress.com 服務再搭配 Google 相簿?問題是 Google 相簿會把圖片的名稱改變,而且你需要使用一些特別的技巧,例如 Google 相簿取得真實圖片位置(插入圖片到文章)才可以使用它作圖床,如果你有時間手動去處理過千張圖片也未嘗不可。又,Google Drive 圖床大法早已被 Google ban 了。

以下為不成功的搬家示範

假設在步驟 4. 以後你沒有進行轉檔,而是直接將 mt 後綴文檔直接匯入的話,圖片會顯示不了,因為備份檔內的圖片網址仍然是 MySinaBlog

然後在 PHPMyAdmin 使用以下 MySQL 語法將圖片從舊的 MySinaBlog 網址更換為新的網址。

UPDATE wp_posts SET post_content = replace(post_content, ‘http://舊網址’, ‘http://新網址’);

舉例

UPDATE wp_posts SET post_content = replace(post_content, ‘http://xxx.mysinablog.com/resserver.php?blogId=9030&resource=’, ‘https://babyxyz.com/wp-content/uploads/2019/12/9030-‘);

意思是把 wp_posts,亦即是文章內的 post_content 內文中的舊 MySinaBlog 網址換為新的網站圖片所在,就是你把圖片 FTP 上載的地方,留意要加回前綴博客數字代號的部份

按執行後,回到網誌圖片仍未正確顯示,原因是現在的語法只是幫你將圖片由 MySinaBlog 網址改為新域名及加回博客數字代號 ,但後面多餘的部份還未除去,亦即是 -babyshark 仍在

假使你是 MySQL 高手,了解如何將一堆 https://babyxyz.com/wp-content/uploads/2019/12/9030-637736-babyshark.jpg、https://babyxyz.com/wp-content/uploads/2019/12/9030-329648-0-co-ei.gif、https://babyxyz.com/wp-content/uploads/2019/12/9030-329453-.jpg 之類的東西保留 jpg/png/gif 但斷捨離只剩下左邊12位數字(用 CONCAT?還是 TRIM?),請告訴我。

Tagged in: