200

Z-Blog分類標簽全站靜態化方案

時間: 2013-03-04 17:29:05   點擊數: 148626   來源: 耐思智慧

Z-Blog目前已經實現了首頁和文章頁的靜態化,可以生成HTML文件,但是系統的分類頁、標簽Tags頁、歸檔頁和作者頁都沒有實現靜態化,本文將講述一個非常簡單的方案,能夠自動生成各個分類頁、歸檔頁和Tags的靜態HTML頁面,以便用戶將網站遷移到Apache等不支持ASP的主機上。

Z-Blog的分類頁、標簽Tags頁、歸檔頁和作者頁都是調用catalog.asp這個文件,因此,修改這個文件,當用戶調用該文件的時候,自動生成針對該頁面的HTML文件。如果訪客反復讀取這個文件,那么在一定時間范圍內,可以直接在文件開頭使用靜態文件,以達到節省系統資源的目的。

具體的修改方法是,先在根下建立一個目錄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

這樣,系統就會自動生成全部動態頁面的靜態HTML文件,并且在1小時內不會重復生成,期間如果還有調用,則自動載入靜態HTML文件,以節省系統資源。

經過這番處理,Z-Blog的全部分類和Tags就都可以生成靜態HTML頁面了。

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

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);
}

如果不想用PHP來處理,也可以直接配置.htaccess文件來實現同樣的功能,.htaccess文件的內容如下:

RewriteRule ^(.*)/cat/?cate=(.+)&page=(.+)$ $1/cat/cate_$2_$3.html
RewriteRule ^(.*)/cat/?cate=(.+)$ $1/cat/cate_$2.html
RewriteRule ^(.*)/cat/?tags=(.+)&page=(.+)$ $1/cat/tags_$2_$3.html
RewriteRule ^(.*)/cat/?tags=(.+)$ $1/cat/tags_$2.html
RewriteRule ^(.*)/cat/?auth=(.+)&page=(.+)$ $1/cat/auth_$2_$3.html
RewriteRule ^(.*)/cat/?auth=(.+)$ $1/cat/auth_$2.html
RewriteRule ^(.*)/cat/?date=(.+)&page=(.+)$ $1/cat/date_$2_$3.html
RewriteRule ^(.*)/cat/?date=(.+)$ $1/cat/date_$2.html
RewriteRule ^(.*)/cat/?page=(.+)$ $1/cat/default_$2.html

上一篇:網頁設計核心內容對視覺表現的影響 下一篇:常用四大博客程序安裝與評測

旗下網站:耐思智慧 - 淘域網 - 我的400電話 - 中文域名:耐思尼克.cn 耐思尼克.top

耐思智慧 © 版權所有 Copyright © 2000-2025 IISP.COM,Inc. All rights reserved

備案號碼: 粵ICP備09063828號  公安備案號: 公安備案 粵公網安備 44049002000123號  域名注冊服務機構許可:粵D3.1-20240003 CN域名代理自深圳萬維網

聲明:本網站中所使用到的其他各種版權內容,包括但不限于文章、圖片、視頻、音頻、字體等內容版權歸原作者所有,如權利所有人發現,請及時告知,以便我們刪除版權內容

本站程序界面、源代碼受相關法律保護, 未經授權, 嚴禁使用; 耐思智慧 © 為我公司注冊商標, 未經授權, 嚴禁使用

法律顧問:珠海知名律師 廣東篤行律師事務所 夏天風 律師

主站蜘蛛池模板: 天天干天天拍天天射| 日韩国产成人精品视频| 免费高清av一区二区三区| 邱淑芬一家交换| 国产精品va一区二区三区| 99久久99久久精品国产片果冻 | 日韩一区二区三区精品| 亚洲人成影院在线无码按摩店| 浪潮AV色综合久久天堂| 免费人成视频在线观看网站| 美女扒开大腿让男人桶| 国产一级特黄高清免费大片| 麻豆安全免费网址入口| 国产片免费在线观看| 337p啪啪人体大胆| 国内自产少妇自拍区免费| wtfpass欧美极品angelica| 成人午夜在线播放| 久久久久久久极品内射| 日韩精品中文字幕无码专区| 亚洲av网址在线观看| 欧美在线看片a免费观看| 亚洲欧美日韩国产vr在线观| 激性欧美激情在线aa| 免费a级毛片18以上观看精品| 精品国产午夜理论片不卡| 四虎国产精品永久在线播放 | 思思久而久焦人| 中文字幕在线永久视频| 无码人妻一区二区三区在线| 久久久一本精品99久久精品66 | 蜜臀av免费一区二区三区| 国产卡一卡二卡3卡4乱码| 麻豆亚洲av熟女国产一区二| 国产成人精品曰本亚洲78| 69av在线播放| 国产欧美另类精品久久久| 欧美日韩一道本| 国产日韩欧美网站| 黄色福利在线观看| 国产成视频在线观看|