ASP 订阅所有【ASP】的日志

404错误伪静态类封装class RewriteBase

这是早上找了点时间写了一个利用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
%>


有兴趣的朋友可以下载RewriteBase类源码玩玩:
压缩包类包括:404.asp、cls_RewriteBase.asp

下载文件 点击下载此文件

在线测试地址:http://pjskin.mysuc.com/style_1075.shtml#comm_84 注意看里面的链接,目前只写了一条规则(就是上面示例中的)

404.asp源码:
HTML代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


下面是cls_RewriteBase的源码:

HTML代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


crazy1in.tk[2010-06-28 12:28 AM]del回复
小弟不懂还是路过。www.crazy1in.tk
硅谷[2009-11-09 05:45 PM]del回复
站长开发测试OK了吗?好用吗?想借鉴一下
回复来自 hayden 的评论 hayden2009-11-10 10:11 AM 回复
经测试,这方法在占用资源方面很存在问题呀!
dalier[2009-10-27 07:07 PM]del回复
这个里有个问题...

就是编码,因为我有的页面是 GB2312, 有的是 UTF-8...

这样的情况该怎么办?
回复来自 hayden 的评论 hayden2009-11-10 10:13 AM 回复
这是个问题,需要转换编码~
zui[2009-08-19 10:40 PM]del回复
xxx.com/article/123.html
xxx.com/article/asp/123.html

这样的效果,怎么写条件?
回复来自 hayden 的评论 hayden2009-11-10 10:12 AM 回复
Rewrite.Rule "^\/article\/([^\.])*\.html$","/article/asp/$1.html"
懒人猫[2009-06-22 05:37 PM]del回复
blog.dzhai.com/class_31.html
blog.dzhai.com/article_491.html

测试了下,OK了,但有点问题
引用内容 引用内容
Rewrite.Src "(href=""[^\?]*)\?styleid=([0-9]+)","$1style_$2.shtml"    '将页面里的地址转成伪静态格式的地址。

我的页面里好像没有转换成功
回复来自 hayden 的评论 hayden2009-06-23 10:41 AM 回复
这应该是正则的问题,将你的正则式重新编写一下。
懒人猫[2009-06-22 04:51 PM]del回复
因为要获取取目标URL地址的html代码,效率是个问题啊,还请指教一下~~~
vb[2009-06-15 09:04 AM]del回复
这是一个好方法..
luoxiaoji[2009-06-14 08:49 PM]del回复
额,不是博客的留言本程序了,
是你提供下载的那个留言本程序,怎么实现在留言框里加个可以改颜色的UBB功能。
还有就是只有管理员可见得功能~这2个功能非常需要。
luoxiaoji[2009-06-14 02:30 AM]del回复
大哥, 你的留言可以怎么在留言框里加个设置颜色的UBB代码么。
我想要这个功能,怎么实现啊。
海天无影[2009-06-13 10:42 AM]del回复
不知道什么意思
等样式出来 我下看看吧
发表评论
Name (required)
PassWord(游客发言不需要密码.)

虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.