惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V2EX - 技术
V2EX - 技术
L
LangChain Blog
IT之家
IT之家
S
SegmentFault 最新的问题
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Blog of Author Tim Ferriss
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
U
Unit 42
B
Blog RSS Feed
GbyAI
GbyAI
Microsoft Security Blog
Microsoft Security Blog
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
T
Threatpost
C
CERT Recently Published Vulnerability Notes
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
Vercel News
Vercel News
S
Schneier on Security
Spread Privacy
Spread Privacy
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 叶小钗
雷峰网
雷峰网
博客园_首页
人人都是产品经理
人人都是产品经理
P
Palo Alto Networks Blog
The Hacker News
The Hacker News
T
Tor Project blog
L
Lohrmann on Cybersecurity
Know Your Adversary
Know Your Adversary
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cybersecurity and Infrastructure Security Agency CISA
P
Privacy International News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tenable Blog
V
Vulnerabilities – Threatpost
大猫的无限游戏
大猫的无限游戏
博客园 - 【当耐特】
V
V2EX
Security Latest
Security Latest
A
About on SuperTechFans
Cloudbric
Cloudbric
S
Security Affairs
MongoDB | Blog
MongoDB | Blog
Y
Y Combinator Blog
Martin Fowler
Martin Fowler
TaoSecurity Blog
TaoSecurity Blog

月光博客

AI编程从零开始:环境配置到开发调试-月光博客 母亲被保健品诈骗-月光博客 向身体低头,向岁月妥协:我的高血压“还债日记” -月光博客 月光博客电子书:《信息安全指南》 谷歌发布2025年度搜索排行榜 中国2025社会热点大事记 2025年十大流行语发布 7天3次,骗子骗走我母亲95万元 “技术男”设三重安全墙,母亲95万存款还是被骗走了 电信诈骗后的复盘:母亲的95万元,是怎么从手机银行里消失的 母亲被电信诈骗95万元的全过程 阿根廷警察被谷歌街景相机拍到裸照 网信办开展“清朗·整治恶意挑动负面情绪问题”专项行动 翟欣欣敲诈勒索案一审获刑12年 《绝命毒师》影评:力工觉醒后的梭哈至死 《人工智能生成合成内容标识办法》正式施行 用AI分析你的财务信息 腾讯子公司实习HR怒怼求职者后被开除 OpenAI发布最强模型GPT-5,免费向所有用户开放 用AI解构你的日记 用AI分析你的游戏偏好 用AI分析你的观影偏好 用AI分析你的听歌偏好 《白鹿原》人物分析:乱世浮沉中的人性剖析 乌托邦的捷径:让AI治理“失败国家” 苹果AI的“路径错误”:为什么它在大模型时代掉队了? 《暗黑破坏神3》第35赛季开荒指南 我对特朗普的看法 欧·亨利十大经典小说鉴赏 HBO电视剧《最后生还者》第二季影评 播客自动化更新分发教程 《围城》人物分析:知识分子的时代困局 NotebookLM音频概览支持中文 《暗黑破坏神3》国服回归 《暗黑破坏神3》国服赛季开荒指南 《网络数据安全管理条例》正式发布实施 契约之下的自由:社会契约论 如何去除文章的AI味道 电影《好东西》影评 我的价值观:义务论和效益论 《魔兽世界》正式服PVP教程 电影《哪吒2》影评 中医理论不是科学理论 DeepSeek与主流AI模型对比评测 TikTok停止在美国服务 我的三观(世界观、价值观、人生观) 《无限暖暖》游戏评测 2024年财经年度总结 月光博客2024年推荐阅读文章 IMDb公布2024年热门电影和电视剧 2024年十大流行语发布 谷歌发布2024年度搜索排行榜 中国2024社会热点大事记 Google Adsense税务居住地证明申请教程 极狐GitLab回应前员工实名举报公司高管:恶意诽谤造谣 升级FTTR千兆光纤带宽 字节跳动起诉前实习生索赔800万 看完历届奥斯卡最佳影片后的体验 李子柒已经正式改名并恢复更新 苹果历年新春短片 “姜萍事件”调查结果公布 胡锡进社交平台恢复更新 上海女子沙白自杀的伦理道德分析 京东与杨笠一起玩火 字节跳动大模型训练被实习生攻击,涉事者已被辞退 《加勒比海盗》系列电影 《夺宝奇兵》系列电影时间线 《侏罗纪公园》系列电影时间线 《终结者》系列电影时间线 华为禁止用户从外部手动安装安卓应用(APK文件) 《炉石传说》国服回归一片混乱 官媒辟谣苹果手机被远程引爆 小米回应摄像头里出现陌生男子说话 环球人物:民族大义不是流量密码,盲目排外没有土壤 《异形》系列电影时间线 看完IMDb250后的体验 暴雪《炉石传说》国服开启预约 网易DD参与代打《魔兽世界》事件的深入分析 福建男子四年前“翻墙”浏览境外网站被行政处罚 《魔兽世界》正式服开服两周游戏体验 暴雪游戏足迹查询:查看暴雪游戏的数据 用AI分析你的推特社交网络数据 胡锡进停更三个月 国家网络身份认证公共服务管理办法向社会公开征求意见 苹果将部分产能转回中国 Windows全球大范围蓝屏 电影《V字仇杀队》影评 微软中国员工禁用安卓手机:只能用iPhone 《魔兽世界》怀旧服“巫妖王之怒”游戏体验 百度旗下萝卜快跑已在多个城市开放载人测试 我为什么不喜欢华为这家企业 胡锡进:强烈谴责苏州袭击日本人的凶手 20美元在美国超市的购买力 华为紧急辟谣“是国内最大的牛肉进口商” 苹果公司公布2024年Apple设计大奖获奖名单 自动生成电影剧本:人工智能技术的崭新里程碑 电影《芳华》人物分析 Steam账号被盗号的解决方法 中文互联网内容正在逐步消失 马斯克:推特域名已全部转移到X
Z-Blog分类标签全站静态化方案
月光 · 2012-06-07 · via 月光博客

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

Z-Blog分类标签全站静态化方案