網站救援大行動。

昨天回埔里的路上,就在想著這個網站的事,我翻出之前備份的檔案後這才發現,原來我從二零零二年的冬天,也就是我生大學沒多久後,就開始用電腦書寫記錄我的生活。

如今,六個年頭過去了,這中間系統換了好幾次,有許多網址早都失效,但也沒太過在意。一直到前一陣子因為準備畢業,而把網站牽出學校,並且開始使用 Google 的網站管理員工具後,這才發現有許多早已失效的網址 Google 都還有索引。

此外,我也發現還有許多人透過其他的網站連到已經失效的網址,其中最大宗的是從荒謬大觀這一篇連結到之前我寫的『好問題!寫部落格要給誰看?』,咱們李杯杯的力量果然驚人。

也因為如此,就決定趁著這次重新架設的機會,把這些網址全都救回來,讓之前在網路上留下的蹤跡不至於就這樣消失。

而我的作法大致如下,由於我的部落格系統是使用 WordPress,因此這項工作主要是由 Redirection 這個外掛所達成。它可以幫你做網址的對應,把舊的網址轉到新的網址。

而我的網站系統總共變過三次,前兩次是我自己寫的系統,之後則是使用 WordPress,並把之前的內容用 RSS 的方式匯入這個新的系統。

在網址方面,第一版的時候長得像這樣:

http://brianhsu.moe/分類名稱/1234567890.php

第二版的時候因為打算做額外的靜態網頁,所以把網址給加深了一層,並且把分類名稱的部份固定住,所以看起來像這樣:

http://brianhsu.moe/blog/Archives/1234567890.php

其中的 1234567890 其實是文章的 Unix 時間戳記,每篇文章都不相同,但一定固定是十位數。

最後一次變更就是 WordPress 系統了,這個麻煩的是網址和上述兩項都不相同,所以我從資料庫把文章的時間戳記和 ID 撈出來做比對後,再把他丟到 Redirection 這個模組去。

第二次改版的網址型式只有最後一層的時間戳記有變動,所以只要做好新的文章 ID 和時間戳記對應表即可。

比較麻煩的是第一版的網址,中間是不固定的,而且也不在 blog 這個目錄裡,Redirection 並沒辦法處理,所以我這裡做了兩層的處理。

首先,一樣把最後一部份的時間戳記對應到新的網址,也就是說第一版的時間戳記放到第二版的網址後,Redirection 會幫我轉到正確的網頁去。

所以剩下的就是怎麼樣把第一版的網址從

http://brianhsu.moe/分類名稱/XXXXXXXXXX.php

轉換到

http://brianhsu.moe/blog/Archives/XXXXXXXXXX.php

在這邊,我是借助偉大的 .htaccess 檔案和正規表示法來達成,利用下面的設定,阿帕契就會幫我把和第一版相對應的網址轉到第二版,而第二版的網址再交由 Redirection 轉到正確的網頁囉。

RedirectMatch permanent ^(/\w{1,10})/(\d{10,10}.php)
    http://brianhsu.moe/blog/Archives/$2

如此一來,總算所有類型的網址都可以正常工作了。

但話雖如此,不過可悲的是,我發現我之前轉移系統的時候,留言資料庫並沒有備份,所以在轉換到 WordPress 系統之前的留言全都消失了,包括以前 EJ 和簡麗珍老師的留言。我看這下連長門大神也救不了我了……>_<

另外,由於六月中實驗室斷電而我又不在埔里的關係,臨時架設起來的網站從『泉此方云:你的愛不夠!』一直『到來去 cos 紙箱機器人阿愣!?』的網址,因為和舊系統相衝,所以網址一定要改,但數量也不多,我想就讓他去吧!

回響