404错误伪静态类封装class RewriteBase
作者:hayden 来源:烦恼blog 时间:2009-06-29 16:19:00
这是早上找了点时间写了一个利用404错误达到静态态效果的类,准备在HTTP://PJSKIN.MYSUC.COM中使用的。不过现在没时间去弄了,因为首页嘛,一般就用动态的了,但需要将里面的地址改成静态后的地址,麻烦啊,今天就不弄啦,不过基本的类框架都写好了,剩下的只是去写写规则,及更改首页的页面内容中出现的地址。
下面来看看该RewriteBase类的使用方法:
在404asp页面中首先引入RewriteBase类
<!--#include file="cls_RewriteBase.asp"-->
然后在后面的ASP代码中按如下方面设置伪静态:
<%
Dim Rewrite
Set Rewrite = new RewriteBase '建立对象
'Rewrite.Char "utf-8" '设置编码默认为utf-8
'假设访问网址:http://pjskin.mysuc.com/style_1149.shtml
'Rewrite.ourl '这里可以测试最初所接收的地址,如我的空间404后该函数所接收到的地址是这样的:http://202.91.239.125/404.asp?404;http://pjskin.mysuc.com:80/style_1149.shtml=
Rewrite.ReSetUrl "http[^;]*;([^=]*)=","$1" '通过上面的地址,设置一个正则转换,使其变成我们在浏览器中所点击的地址。如果你的空间没有此问题,这一步可以去掉。
'Rewrite.ourl '这里可以测试是否成功转换为所点击的地址。如结果显示为:http://pjskin.mysuc.com/style_1149.shtml
'**************************
'伪静态正则规则开始。
'**************************
Rewrite.Rule "(http:[^:]*):80\/style_([0-9]+)\.shtml","$1/?styleid=$2"
'Rewrite.ourl '这里可以测试是否已转换到最后地址,将上一步格式的地址转化成如下:http://pjskin.mysuc.com/styleid=1149
'下面的规则是我按PJBLOG的地址写了一个规则,不过有待测试。
'Rewrite.Rule "^\/article\/([0-9]+)\.htm","/article.asp?id=$1"
'Rewrite.Rule "^\/class_([0-9]+)\.html$","/default.asp?cateID=$1"
'Rewrite.Rule "^\/tag\.htm$","/tag.asp"
'Rewrite.Rule "^\/GuestBook\.html$","/LoadMod.asp?plugins=GuestBookForPJBlog"
'Rewrite.Rule "^\/AboutMe\.html$","/LoadMod.asp?plugins=AboutMeForPJBlog"
'Rewrite.Rule "^\/tag_([^\.])*\.html$","/default.asp?tag=$1"
'**************************
'转换页面中存在的动态地址
'**************************
'利用Rewrite.Src 函数,转换输出的页面内容中的链接网址。如果已在源码中都修改了,在这里就不需要设置。
Rewrite.Src "(href=""[^\?]*)\?styleid=([0-9]+)","$1style_$2.shtml" '将页面里的地址转成伪静态格式的地址。
Set Rewrite = Nothing
%>