使用Z-Blog ASP 2.3版本,可以很方便的實現全站靜態化,包括目錄和標籤tag都靜態化輸出,這裡就給出一個詳細的實現方法。
這個方案可以實現全站的全部連結(文章頁、列表頁、分類頁、標籤頁、作者頁、分頁等)全部實現靜態以及偽靜態HTML輸出。平時頻繁更新發布的時候,可以使用偽靜態HTML方式,如果長期不更新內容,可以使用純靜態HTML方式,兩種方式可以相互切換。純靜態HTML可以部署到各類免費虛擬主機上,實現低成本網站發布。
下面說一下具體實現方法:
首先伺服器必須是Windows Server 2008以上版本,安裝IIS 7.5,啟用URL重寫模塊。
之後安裝Z-Blog 2.3,下載安裝YT.Build插件。
YT.Build系統配置裡選擇「開啟」。
在Z-Blog「靜態管理中心」裡,設置全局靜態化選項為「1.文章靜態 」。
靜態化配置參數如下:
文章的URL配置
{%host%}/{%post%}/{%id%}.html
頁面的URL配置
{%host%}/{%alias%}.html
首頁分頁的URL配置
{%host%}/page/index.html
分類頁的URL配置
{%host%}/cat/{%alias%}.html
作者頁的URL配置
{%host%}/author/{%id%}.html
TAGS頁的URL配置
{%host%}/tag/{%alias%}.html
日期頁的URL配置
{%host%}/date/{%date%}.html
點擊「保存」後,系統會生成一個ReWrite文件,覆蓋到根目錄下的web.config文件。
作者頁和日期頁由於會生成大量重複文件,並且似乎的確也沒什麼用,因此可以在模板裡將和其相關的代碼都刪除,我們只用分類頁、標籤頁和首頁分頁即可。
靜態化使用「 1.文章靜態」,因為文章頁訪問量較大,目錄頁和TAG頁使用偽靜態,如果進行主機遷移,則用YT.Build生成目錄頁和TAG頁的html文件,然後就可以將全部html文件部署到另一臺主機上。如果遇到突發大流量,可以用YT.Build生成目錄頁和TAG頁的html文件,然後將web.config裡的重寫刪除即可。
在靜態化tag的時候,使用{%alias%}標籤,系統依舊按照name來構建url,查看了一下,可能是Z-Blog代碼的問題,於是做了如下修改。
修改c_system_lib.asp文件
將 Url =ParseCustomDirectoryForUrl(Tags(i).FullRegex,ZC_STATIC_DIRECTORY,"","","","","",Tags(i).ID,Tags(i).Name,Tags(i).EncodeName)
修改為 Url =ParseCustomDirectoryForUrl(Tags(i).FullRegex,ZC_STATIC_DIRECTORY,"","","","","",Tags(i).ID,Tags(i).Name,Tags(i).EncodeIntro)
此外,YTBuild的Tag也存在一樣的問題,同樣也是代碼的問題。
修改YTBuild插件的YT.Lib.asp
將 UrlRules=ParseCustomDirectoryForPath(UrlRules,ZC_STATIC_DIRECTORY,"","","","","",jTag.ID,jTag.Name,jTag.Name)
修改為 UrlRules=ParseCustomDirectoryForPath(UrlRules,ZC_STATIC_DIRECTORY,"","","","","",jTag.ID,jTag.Name,jTag.Intro)
之後在tag裡使用{%alias%}標籤,即可正常生成url。
這樣,整個系統就會將全部動態頁面變成靜態HTML文件,以節省系統資源。經過靜態化之後,就可以將Z-Blog全站都放在只支持HTML的免費主機上了,因為HTML耗費資源極低,因此可以實現低成本的網站發布。編輯catalog.asp這個文件,將其代碼修改為如下即可: