您好,欢迎访问一九零五行业门户网

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);
}
其它类似信息

推荐信息