pjblog全静态化与动态/半静态模式互相转换后的URL网址跳转处理问题

最近一直有朋友提起博客打开速度很慢,现在用的是一个电信网络的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 ( " " ) %>

点赞 (0)
  1. 威言威语说道:

    话说还是全静态速度快点,PJ的全静态看着就纠结。

  2. 安卓汇说道:

    伪静态就有内容重复的问题,,今天我索性直接动态不管了。。现在也都能正常收录的

  3. PJ。。。还不错。。

    但是,你说的我都不懂。。

  4. johnpc说道:

    博客换主题了,比以前好看了

  5. 木本无心说道:

    我这打开你的博客速度还是很快的啊。

  6. 七七说道:

    不错,来顶顶

  7. 美女图片说道:

    嗯!每天都来关注,今天的有些难懂,呵呵!

  8. 學習來了。

    雖然還是不懂。。。

  9. hawkhost说道:

    支持PJBLOG非常不错!

发表评论

电子邮件地址不会被公开。 必填项已用*标注