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

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

时间: 2024-07-31 11:46:38

Z-Blog分类标签全站静态化方案的相关文章

老Y文章管理系统的全站静态化详解

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这篇文章我最早发在我的博客(网赚博客)上,后来发现其中内容有不妥的地方,今天修改了一下,重发于此.众所周知,老Y文章管理系统是不能生成静态html页面的,这也导致很多使用老Y的站的收录很不理想,本文就主要介绍如何解决老Y文章管理系统的全站静态化问题,顺带解决静态页面点击量的问题. 一.先说一下老Y文章管理系统的全站静态化步骤 1.点此下载老Y

关于jsp页面的静态化,我想了解一下原理及实现流程

问题描述 现在毫无头绪,希望能得到大家帮准,多谢:) 解决方案 你这静态化是说的url编程伪静态的, 还是真正意义上的静态化?真正意义上的静态化,也有多种方式, 比如你可以定期请求这个jsp,把响应的结果生成静态html文件保存. 定期更新它们.如果只是url看起来是静态的,比如 /a/b/c 或者 /a/b/c.html 这种, 很多web容器自带了urlrewrite模块. 比如resin, nginx等都可以, 在上面配置. 如果是java实现, 用一个叫做 urlrewrite的项目也可

PHP网站页面静态化的生成方法介绍

在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存等实现页面静态化,今天就以PHP实例教程形式讨论PHP生成静态页面的方法. 什么是PHP静态化 PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同. PHP伪静态教程:利用Apache mod_rewrite实现URL重写的方法 PHP生成静态HTM

我的CMS开发记-5 实现静态化页

为了实现静态化页,我在博客园里可是搜了半天.最后找到两个方案: http://www.cnblogs.com/hsqzzzl/archive/2005/10/23/260122.html文中的,生成静态页后,使用url重写重定向到静态页上. http://www.cnblogs.com/nurong/archive/2005/10/15/255439.html 使用404方式动态地生成静态页. 那么这两种那个好呢?嘿嘿,本人的办法是,两种都实现,然后自己选择.是啊,不试一试怎么知道哪种效率更好.

网站优化并不是非HTML静态化不可

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 目前在国内SEO业界,很多SEO公司或个人在给某一网站进行SEO优化时,给 对方网站的第一诊断建议往往就是要将内容页面HTML静态化.这当然不是因为动态页面就做不了SEO,而是相对于HTML静态页面而言,动态页面对搜索引擎的友好性不及静态页面, 其实可通过很多技术或变通方式,网站优化并不是非静态化不可.例如广州SEO,大家可以点开链接分析下其

网站-网首页静态化-提高访问效率

问题描述 网首页静态化-提高访问效率 请教大家有经验的,比如一个视频网站首页,轮播图和视频可能回1小时更新,视频播放数,点赞数要求实时更新, 这样的首页是不是不适合做静态化啊,如果可以如何做,如何访问效率,不知道大家有什么建议,比如美拍的官网,是静态化的吗,看起来访问速度很快 ,请有经验的前辈谈一谈,如何合计. 解决方案 静态化的本质就是缓存,而且是把磁盘当作缓存,这是一种低级原始低效的做法. 事实上现在有无数的缓存框架,缓存框架都是将内存作为缓存,而且有很好的处理脏数据的策略.所以完全不要再用

PHP实现HTML页面静态化的方法_php技巧

随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化.一般情况下会从以下方面来做优化 动态页面静态化 优化数据库 使用负载均衡 使用缓存 使用CDN加速 现在很多网站在建设的时候都要进行静态化的处理,为什么网站要进行静态化处理呢?我们都知道纯静态网站是所有的网页都是独立的一个html页面,当我们访问的时候不需要经过数据的处理直接就能读取到文件,访问速度就可想而知了,而其对于

比较详细的Asp伪静态化方法及Asp静态化探讨_应用技巧

目前,各大搜索引擎如google.百度.雅虎已经对动态页面诸如asp,php有着不错的支持了,只要动态页面后面的参数不要太长,如控制在3个参数内,页面内容做点优化,各大搜索对该类页面收录甚至不比静态html页面差,我有个全站是asp页的网站,其收录及排名远远超过了很多静态页的网站.     当然,任何网站,结构再好,如果没有内容作为支撑的话,最终还是留不住用户.搜索引擎的发展速度,已经不是当初几乎不能收录动态页面的水平了,各大搜索都在全力发展自己的索引技术,一般的动态页面在它们那里已经是能够轻易

PHP实现页面静态化的超简单方法_php实例

为什么要页面静态化? 1.动态文件执行过程:语法分析-编译-运行 2.静态文件,不需要编译,减少了服务器脚本运行的时间,降低了服务器的响应时间,直接运行,响应速度快:如果页面中一些内容不经常改动,动态页面静态化是非常有效的加速方法.(纯静态,伪静态还是需要PHP解释器的) 3.生成静态URL利于SEO,利于蜘蛛抓取和收录,有利于提升排名 优化页面响应时间方法 1.动态页面静态化 2.优化数据库 3.负载均衡 4.使用缓存等等 //动态页面静态化一般用于不经常改动的地方,频繁改动的地方一般不适用静