php 全站静态化实现和策略,Z-Blog分类标签全站静态化方案_php

本文介绍了一个方法,通过修改Z-Blog的catalog.asp文件,实现分类页、标签页、归档页和作者页的静态化,生成HTML文件。静态化后,即使在不支持ASP的Apache主机上也能运行,通过检查文件更新时间,减少重复生成,节省系统资源。具体步骤包括创建静态文件目录,添加代码以根据查询字符串生成相应HTML文件名,并在请求时判断是否需要重新生成或直接加载静态文件。
摘要由CSDN通过智能技术生成

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

http://www.gaodaima.com/?p=50161Z-Blog分类标签全站静态化方案_php

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

}

欢迎大家阅读《Z-Blog分类标签全站静态化方案_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值