Z-Blog博客分類標(biāo)簽全站靜態(tài)化的解決方案
來源:易賢網(wǎng) 閱讀:804 次 日期:2014-09-02 14:46:40
溫馨提示:易賢網(wǎng)小編為您整理了“Z-Blog博客分類標(biāo)簽全站靜態(tài)化的解決方案”,方便廣大網(wǎng)友查閱!

Z-Blog目前已經(jīng)實(shí)現(xiàn)了首頁和文章頁的靜態(tài)化,可以生成HTML文件,但是系統(tǒng)的分類頁、標(biāo)簽Tags頁、歸檔頁和作者頁都沒有實(shí)現(xiàn)靜態(tài)化,本文將講述一個(gè)非常簡(jiǎn)單的方案,能夠自動(dòng)生成各個(gè)分類頁、歸檔頁和Tags的靜態(tài)HTML頁面,以便用戶將網(wǎng)站遷移到Apache等不支持ASP的主機(jī)上。

Z-Blog的分類頁、標(biāo)簽Tags頁、歸檔頁和作者頁都是調(diào)用catalog.asp這個(gè)文件,因此,修改這個(gè)文件,當(dāng)用戶調(diào)用該文件的時(shí)候,自動(dòng)生成針對(duì)該頁面的HTML文件。如果訪客反復(fù)讀取這個(gè)文件,那么在一定時(shí)間范圍內(nèi),可以直接在文件開頭使用靜態(tài)文件,以達(dá)到節(jié)省系統(tǒng)資源的目的。

具體的修改方法是,先在根下建立一個(gè)目錄cat,然后使用編輯器打開Z-Blog根目錄下的catalog.asp文件,在文件開頭加入如下的代碼:

Dim objFSO

Dim objFile

Dim strFileName

Dim strFileTime

Dim isBuildFile

if Request.QueryString("cate")<>"" then

if Request.QueryString("page")<>""then

strFileName = "cate" + "_" + Request.QueryString("cate") + "_" + Request.QueryString("page") +".html"

else

strFileName = "cate" + "_" + Request.QueryString("cate") + ".html"

end if

elseif Request.QueryString("tags")<>"" then

if Request.QueryString("page")<>""then

strFileName = "tags" + "_" + Request.QueryString("tags") + "_" + Request.QueryString("page") +".html"

else

strFileName = "tags" + "_" + Request.QueryString("tags") + ".html"

end if

elseif Request.QueryString("auth")<>"" then

if Request.QueryString("page")<>""then

strFileName = "auth" + "_" + Request.QueryString("auth") + "_" + Request.QueryString("page") +".html"

else

strFileName = "auth" + "_" + Request.QueryString("auth") + ".html"

end if

elseif Request.QueryString("date")<>"" then

if Request.QueryString("page")<>""then

strFileName = "date" + "_" + Request.QueryString("date") + "_" + Request.QueryString("page") +".html"

else

strFileName = "date" + "_" + Request.QueryString("date") + ".html"

end if

elseif Request.QueryString("page")<>"" then

strFileName = "default" + "_" + Request.QueryString("page") +".html"

else

strFileName = "default_1" + ".html"

end If

isBuildFile = False

Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(Server.MapPath(strFileName)) Then

Set objFile = objFSO.GetFile(Server.MapPath(strFileName))

strFileTime = objFile.DateLastModified

Set objFile = Nothing

If datediff("h",strFileTime,Now()) > 1 Then

isBuildFile = True

Else

Server.Transfer strFileName

Response.End

End If

Else

isBuildFile = True

End If

Set objFSO = Nothing

找到 Response.Write ArtList.html 一行,在其后面增加如下代碼:

If isBuildFile Then

ArtList.FileName=strFileName

ArtList.Directory="cat"

ArtList.Save

End if

這樣,系統(tǒng)就會(huì)自動(dòng)生成全部動(dòng)態(tài)頁面的靜態(tài)HTML文件,并且在1小時(shí)內(nèi)不會(huì)重復(fù)生成,期間如果還有調(diào)用,則自動(dòng)載入靜態(tài)HTML文件,以節(jié)省系統(tǒng)資源。

經(jīng)過這番處理,Z-Blog的全部分類和Tags就都可以生成靜態(tài)HTML頁面了。

經(jīng)過靜態(tài)化之后,就可以將Z-Blog全站都放在PHP+Apache的主機(jī)上了。具體方法是,配置Apache主機(jī),使其用php的方法解析asp,然后編輯catalog.asp這個(gè)文件,將其代碼修改為如下即可:

if (isset($_GET['cate'])) {

if (isset($_GET['page'])) {

$strFileName = "cate_".strip_tags(stripslashes(trim($_GET['cate'])))."_".strip_tags(stripslashes(trim($_GET['page']))).".html";

} else {

$strFileName = "cate_".strip_tags(stripslashes(trim($_GET['cate']))).".html";

}

} else if (isset($_GET['tags'])) {

if (isset($_GET['page'])) {

$strFileName = "tags_".strip_tags(stripslashes(trim($_GET['tags'])))."_".strip_tags(stripslashes(trim($_GET['page']))).".html";

} else {

$strFileName = "tags_".strip_tags(stripslashes(trim($_GET['tags']))).".html";

}

} else if (isset($_GET['auth'])) {

if (isset($_GET['page'])) {

$strFileName = "auth_".strip_tags(stripslashes(trim($_GET['auth'])))."_".strip_tags(stripslashes(trim($_GET['page']))).".html";

} else {

$strFileName = "auth_".strip_tags(stripslashes(trim($_GET['auth']))).".html";

}

} else if (isset($_GET['date'])) {

if (isset($_GET['page'])) {

$strFileName = "date_".strip_tags(stripslashes(trim($_GET['date'])))."_".strip_tags(stripslashes(trim($_GET['page']))).".html";

} else {

$strFileName = "date_".strip_tags(stripslashes(trim($_GET['date']))).".html";

}

} else if (isset($_GET['page'])) {

$strFileName = "default_".strip_tags(stripslashes(trim($_GET['page']))).".html";

} else {

$strFileName = "../default.html";

}

define("HTML_FILE", dirname(__FILE__)."/".$strFileName);

if (file_exists(HTML_FILE)) {

echo(file_get_contents(HTML_FILE));

exit(0);

} else {

exit(0);

}

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看CMS教程
易賢網(wǎng)手機(jī)網(wǎng)站地址:Z-Blog博客分類標(biāo)簽全站靜態(tài)化的解決方案
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
相關(guān)閱讀CMS教程

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)