最近一直有朋友提起博客打开速度很慢,现在用的是一个电信网络的VPS,电信上网访问的速度其实挺不错的。可是想了想,还是决定使用全静态模式。涉及到小问题其实挺多的,都作了一些修正。
这里提及的是关于博客在全静态与/动态半静态模式下转换使用时,都会考虑到的URL地址自动判断跳转问题。解决思路其实都是利用截获请求内容页URL中包含的文章ID,进行相应的跳转处理。
1、动态/半静态向全静态的跳转处理
参考代码如下,添加在header.asp头部即可:
<%
'URL跳转的处理
If InStr(LCase(Request.ServerVariables("HTTP_ACCEPT")),"text/vnd.wap.wml") > 0 Then Response.Redirect "wap.asp"
If blog_postFile = 2 and Then
If InStr(Replace(LCase(Request.ServerVariables("URL")), "", "/"), "/article.asp")<>0 Then
If CheckStr(Request.QueryString("id"))<>Empty Then
Tid = CheckStr(Request.QueryString("id"))
End If
If Len(Tid)>0 Then
Response.Status="301 Moved Permanently"
RedirectUrl caload(Tid)
Response.end
End If
End If
End If
If InStr(Replace(LCase(Request.ServerVariables("URL")), "", "/"), "/default.asp")<>0 Then
Dim Tid
If CheckStr(Request.QueryString("id"))<>Empty Then
Tid = CheckStr(Request.QueryString("id"))
End If
If Len(Tid)>0 Then
Dim rUrl
If blog_postFile = 2 Then
rUrl = caload(Tid)
else
rUrl = "article.asp?id=" & Tid
end if
Response.Status="301 Moved Permanently"
RedirectUrl (rUrl)
Response.end
End If
End If
%>
其实这里涉及一个问题,就是针对加密日志会出现问题,简单的一个处理方法是对加密的分类进行判断。
2、全静态向动态/半静态模式的跳转
这里只能使用javascript代码来处理,参考代码如下。可添加在common/common.js中,不过建议添加在header.asp头部,然后重新生成所有静态日志,再换为半静态模式。
3、其他建议
由于转换之后会存在同一篇日志存在多种URL地址被搜索引擎收录的问题,显然这是不利于内容页在搜索引擎排名中的权重的。我们可以这样处理,即在robots.txt里书写一些限制搜索引擎抓取收录的规则。
比如禁止抓取动态内容页页面可写为:
disallow:/article.asp*
禁止抓取全静态的页面可写为:
disallow:/article/
此外,更多关于301重定向的问题,可参考pj论坛历史帖子,介绍的相对比较详细。
附:
PJblog3 博客首页简单静态化处理代码参考
使用方法:复制下面的代码,存成asp上传到你的博客根目录下即可使用,标签页面也可使用,把里面的default.asp和index.htm改成tag.asp和tag.htm即可!
<%
dim objXmlHttp,binFileData,objAdoStream
Randomize()
set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET","http://"&request.ServerVariables("HTTP_HOST")&"/default.asp?"&rnd(),false
objXmlHttp.send()
binFileData = objXmlHttp.responseBody
set objAdoStream = Server.CreateObject("ADODB.Stream")
objAdoStream.Type = 1
objAdoStream.Open()
objAdoStream.Write(binFileData)
objAdoStream.SaveToFile server.MapPath("index.htm"),2
objAdoStream.Close()
set objAdoStream=nothing
set objXmlHttp=nothing
Response.Write ( "首页发布完成!" )
Response.Write ( "
" )
%>
话说还是全静态速度快点,PJ的全静态看着就纠结。
伪静态就有内容重复的问题,,今天我索性直接动态不管了。。现在也都能正常收录的
PJ。。。还不错。。
但是,你说的我都不懂。。
博客换主题了,比以前好看了
我这打开你的博客速度还是很快的啊。
真不错,呵呵
不错,来顶顶
嗯!每天都来关注,今天的有些难懂,呵呵!
學習來了。
雖然還是不懂。。。
支持PJBLOG非常不错!