昨天回埔里的路上,就在想著這個網站的事,我翻出之前備份的檔案後這才發現,原來我從二零零二年的冬天,也就是我生大學沒多久後,就開始用電腦書寫記錄我的生活。
如今,六個年頭過去了,這中間系統換了好幾次,有許多網址早都失效,但也沒太過在意。一直到前一陣子因為準備畢業,而把網站牽出學校,並且開始使用 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 紙箱機器人阿愣!?』的網址,因為和舊系統相衝,所以網址一定要改,但數量也不多,我想就讓他去吧!
回響