404错误伪静态类封装class RewriteBase(2)
作者:hayden 来源:烦恼blog 发布时间:2009-06-29 16:19:00
有兴趣的朋友可以下载RewriteBase类源码玩玩:
压缩包类包括:404.asp、cls_RewriteBase.asp
下载地址:404Rewrite.rar (2.89 KB)
404.asp源码:
<%@ LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Option Explicit
Session.CodePage = 65001
%>
<!--#include file="cls_RewriteBase.asp"-->
<%
Dim Rewrite
Set Rewrite = new RewriteBase
'Rewrite.Char "utf-8" '设置编码默认为utf-8
'Rewrite.ourl '这里可以测试最初所接收的地址,如我的空间是这样的:http://202.91.239.125/404.asp?404;http://pjskin.mysuc.com:80/style_1149=
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
'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 "(href=""[^\?]*)\?styleid=([0-9]+)","$1style_$2.shtml" '将页面里的地址转成伪静态格式的地址。
Set Rewrite = Nothing
%>
<!-- 这儿是404页面内容 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="UTF-8" />
<title>404错误</title>
<meta name="robots" content="all" />
<meta name="generator" content="editplus" />
<meta name="author" content="hayden@yeah.net,hayden" />
<meta name="Copyright" content="mysuc.com" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" rev="stylesheet" href="" type="text/css" media="all" />
<style type="text/css">
</style>
<script type="text/javascript" src=""></script>
</head>
<body>
404错误,您所查看的页面已失效。
</body>
下面是cls_RewriteBase的源码:
<%
Class RewriteBase
'===========利用404错误伪静态类==========
' Author:hayden
' Copryright www.mysuc.com
' Update: 2009-06-12
'===========================================
Dim WebUrl,regEx,IsTransfer,Char,pagehtml
Dim srt_sPattern,str_sContent
Private Sub class_initialize()
Set regEx = New RegExp ' 建立正则表达式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
regEx.Global = True ' 设置全局可用性。
IsTransfer = False
Char = "utf-8"
GetUrl
srt_sPattern = ""
str_sContent = ""
end sub
'编码设置
Public Function Setchar(ByVal sChar)
If Len(sChar)>0 Then Char = sChar
End Function
'debug 输出真实地址
Public Function ourl()
Response.Status="200 OK"
response.write WebUrl
response.End
End Function
'正则处理伪静态
Public Function rule(ByVal sPattern,ByVal sContent)
If IsTransfer Then Exit Function
IsTransfer = ReSetUrl(sPattern,sContent)
End Function
'正则式处理
Public Function ReSetUrl(ByVal sPattern,ByVal sContent)
ReSetUrl = False
regEx.Pattern = sPattern ' 设置模式。
If regEx.Test(WebUrl) Then
WebUrl = regEx.Replace(WebUrl, sContent)
ReSetUrl = True
End If
End Function
'整理正则式页面链接规则
Public Function Src(ByVal sPattern,ByVal sContent)
srt_sPattern = srt_sPattern & "|**|" & sPattern
str_sContent = str_sContent & "|**|" & sContent
End Function
'正则式页面链接
Private Function reSrc(ByVal sPattern,ByVal sContent)
regEx.Pattern = sPattern ' 设置模式。
pagehtml = regEx.Replace(pagehtml, sContent)
End Function
'获取取目标URL地址的HTML代码
Private Function steal(ByVal src_)
steal = ""
If Not IsTransfer Then Exit Function
dim Http
set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",src_ ,false
Http.send()
if Http.readystate<>4 then
exit Function
end if
steal=BytesToBSTR(Http.responseBody)
set http=nothing
if err.number<>0 then err.Clear
end Function
'处理页面内容
Private Function checkpage()
If Not IsTransfer Then Exit Function
pagehtml = steal(WebUrl)
Dim i
Dim arr_sPattern,arr_sContent
If Len(srt_sPattern)>0 And Len(str_sContent)>0 Then
arr_sPattern = Split(srt_sPattern,"|**|")
arr_sContent = Split(str_sContent,"|**|")
For i = 1 To UBound(arr_sPattern)
If Len(arr_sPattern(i))>0 Then reSrc arr_sPattern(i),arr_sContent(i)
Next
End If
End Function
'中文处理
Private Function BytesToBstr(ByVal sbody)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write sbody
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Char
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
'获取当前网址
Private Sub GetUrl()
Dim strHostName,strScriptName,strSubUrl,strRequestItem
strHostName = CStr(Request.ServerVariables("LOCAL_ADDR"))
strScriptName = CStr(Request.ServerVariables("SCRIPT_NAME"))
strSubUrl=""
If Request.QueryString <> "" Then
strScriptName = strScriptName & "?"
For Each strRequestItem In Request.QueryString
If InStr(strScriptName,strRequestItem) = 0 Then
If strSubUrl = "" Then
strSubUrl = strSubUrl & strRequestItem & "=" & Server.URLEncode(Request.QueryString("" & strRequestItem & ""))
Else
strSubUrl = strSubUrl &"&" & strRequestItem & "=" & Server.URLEncode(Request.QueryString("" & strRequestItem & ""))
End If
End If
Next
End If
WebUrl = "http://" & strHostName & strScriptName & strSubUrl
End Sub
'建立跳转并关闭对象
Private Sub class_terminate()
checkpage
Set regEx = Nothing
If IsTransfer Then
response.write pagehtml
response.End
End If
end sub
End Class
%>


猜你喜欢
- 一、Python图像处理PIL库1.1 转换图像格式# PIL(Python Imaging Library)from PIL import
- 准备下载安装Python3官网下载即可,选择合适的版本:https://www.python.org/downloads/安装一直下一步即可
- 1、创建数组 var array = new Array(); var array = new Array(size);//指定数组的长度
- 参考阅读:https://www.jb51.net/article/169285.htm代码:set objTTS = createobje
- 本文实例讲述了python飞机大战pygame游戏背景设计。分享给大家供大家参考,具体如下:目标背景交替滚动的思路确定显示游戏背景01. 背
- 目录1 请求和响应1.1 请求1.2 响应2 视图2.1 基于APIView写接口2.2 基于GenericAPIView写的接口2.3 基
- 导言:在前面的3章里我们为处理二进制数据添加了很多的功能。我们首先在表Categories里添加BrochurePath列,并更新了体系结构
- 首先官网上的树形控件教程地址为Element - The world's most popular Vue UI framework
- 本文实例讲述了Python机器学习k-近邻算法。分享给大家供大家参考,具体如下:工作原理存在一份训练样本集,并且每个样本都有属于自己的标签,
- 今天为大家分享一下我自己制作的浏览器滚动条,我们知道用css来自定义滚动条也是挺好的方式,css虽然能够改变chrome浏览器的滚动条样式可
- eval是Python的一个内置函数,功能十分强大,这个函数的作用是,返回传入字符串的表达式的结果。就是说:将字符串当成有效的表达式 来求值
- 内置数据类型Python的内置数据类型既包括数值型和布尔型之类的标量,也包括 更为复杂的列表、字典和文件等结构。数值Python有4种数值类
- MigrationsDjango中对Model进行修改是件麻烦的事情,syncdb命令仅仅创建数据库里还没有的表,它并不对已存在的数据表进行
- 简介pandas中的DF数据类型可以像数据库表格一样进行groupby操作。通常来说groupby操作可以分为三部分:分割数据,应用变换和和
- key: [com.alibaba.druid.stat.DruidDataSourceStatManager.addDataSource(
- 对于小型站点,使用七牛云存储的免费配额已足够为站点提供稳定、快速的存储服务七牛云存储已有Python SDK,对它进行简单封装后,就可以直接
- 尝试用python写文件,但是无法写入文件,文件内容为空。原代码片段如下,poem = "This is a poem"
- 作用:用ASP程序将页面中的电话号码生成图片格式。 代码如下:<% Call Com_CreatValidCode
- 事务特性1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。2、一致性(Consiste
- 前言在vue项目中我们经常使用到 v-show ,v-if,v-for等内置的指令,除此之外vue还提供了非常方便的自定义指令,供我们对普通