2006年1月2日 星期一

Pretty Raw Request Mode 試作

2006/01/04 補充說明:

因為我已經改過網址的格式,所以文章裡的下載連結取消,新版 hack 請參閱另一篇文章「More Raw Request Mode hack V0.2」。

LifeType 目前有四種網址模式如下:

  • 一般網址模式 ( NORMAL_REQUEST_MODE ) 所有的網址以 request 變數的方式放在網址中,主要是以各種 Id 組成。
  • 簡潔網址模式 ( SEARCH_ENGINE_FRIENDLY_MODE ) 將 request 變數裡的各種 Id 組合成 Path Info ,讓網址成為搜尋引擎易於搜尋的模樣。這必需要 WWW 主機有支援並開啟 Path InfoErrorDocument 重導向的功能。
  • 網址重寫模式 ( MODREWRITE_MODE ) 其實這個模式很少看到有中譯名。這種模式利用 apache 的 rewrite url module 將易讀的網址重寫回一般網址的型式後,再以一般網址模式處理。這必需要使用 apache server ,並且支援及啟用 rewrite url module 才行
  • 自訂網址模式 ( CUSTOM_REQUEST_MODE ) 網站管理者可以依特訂的方式自訂各種網址,必需要 WWW 主機支援 ErrorDocument 重導向才能使用。

以上四種網址模式,除了一般網址模式之外,都需要 WWW 主機額外的一些支援。這些支援對租用虛擬主機架設 LT 的人來說,經常會受到限制,尤其是對不支援自訂 .htaccess 設定的虛擬主機而言,一般網址模式成為唯一的選擇。

一般網址模式並不是不好,但是過多的 request 變數,讓網址不易記,不易看,也不易用( 例如論壇裡 3gboke 關於 flash mp3 player 的討論 ),也較不利搜尋引擎搜尋。於是我想提出第五種網址模式,他只需要一般網址模式的環境,而且網址裡面只有一個 request 變數,希望能夠讓一般網址更易記易用

目前已有初步的成果,只要修改兩個檔案,新增一個檔案,並修改一個資料庫設定值就可以啟用了。若有興趣,請往下看。

這個新的網址模式,我是用簡潔網址模式修改的。以文章的永久網址為例:

  • 簡潔網址: http://server/lifetype/post/1/2
  • 新網址模式: http://server/lifetype/index.php?post=/1/2

在接著做之前,請先備份你的 LT 系統,或是先在測試站上先測試。目前尚在開發階段,不建議直接使用在實用的 LT 站。

首先請下載我試作的 patch 檔:PrettyRawRequestModPatch-v0.1-alpha.zip

解壓縮後,有三個檔案,請依下表分別複製到目的地:

檔案 路徑 備註
index.php LT 根目錄 覆寫原檔案
requestgenerator.class.php class/net 覆寫原檔案
prettyrawrequest.class.php class/net 新增檔案

接下來要修改資料庫裡的網址模式紀錄。目前請先使用下面的 SQL 修改,未來進入實用階段時,會在管理界面裡直接設置。

update lt_config set config_value = 5 where config_key ='request_format_mode'

最後,可能得清理一下模版的快取,讓網頁以新的網址模式呈現。

這樣就完成啦!有興趣的 LT 請試試看,並給予任何意見做為未來改進。

接下來就是去 bugs.lifetype.net 提出一個 request ,看看開發團隊怎麼說了。

沒有留言:

張貼留言