asp伪静态_404伪静态_利用404.asp实现伪静态的方法 - 飘凌大杂烩
飘凌大杂烩电脑网络手机数码编程技术asp伪静态_404伪静态_利用404.asp实现伪静态的方法
    
 
asp伪静态_404伪静态_利用404.asp实现伪静态的方法
发起人:xiang6963  回复数:0  浏览数:5889  最后更新:2009/9/4 17:46:26 by xiang6963

选择查看 搜索更多相关主题  帖子排序:
2009/9/4 17:46:27
xiang6963






角  色:管理员
等  级:营长
发 帖 数:328
经 验 值:624
注册时间:2007/8/28
asp伪静态_404伪静态_利用404.asp实现伪静态的方法

多网站用的是虚拟主机 服务商不一定提供伪静态功能. . .
但大部分服务商都提供404错误转向.
利用404错误 可以实现 伪静态功能.
下面说下原理
比如网站首页 http://www.xiang6963.cn/index.asp
上面的信息 地址都为 http://www.xiang6963.cn/Class/Show.asp?ID=27870
写程序时候只要故意把 http://www.xiang6963.cn/Class/Show.asp?ID=27870 写成
http://www.xiang6963.cn/show/27870.html
其实并不存在 http://www.xiang6963.cn/show/27870.html这个页面. 用户要点击这个超连接的话, 就会自
动调用404错误页面
只要报404错误页面定义为asp页面就可以了.
其中加入获得 Show.asp?ID=27870 页面的Id 27870 然后利用小偷程序 获取改页面的内容
显示在 http://www.xiang6963.cn/show/27870.html 页面上.
其中最加了 截取 带有/show/和.html的页面 如果不少就转倒正常的err.html错误页面
测试地址 http://www.xiang6963.cn/show/27870.html http://www.xiang6963.cn/Class/Show.asp?ID=27870
两个页面是一样的.
下面是 404错误页面的代码
<%
Dim webUrl,start,over,reurl,Url,Html
weburl=GetUrl()
start= instr(weburl, "/show/")
over =instr(weburl,".html")
if start<>0 and over<>0 then
reurl = mid(weburl,start+6,over-7)
reurl = replace(reurl,".html=","")
else reurl=""
end if
if reurl<>"" then
url="http://www.*****.com/Class/Show.asp?ID="&reurl
else
url="http://www.*****.com/err.html"
end if
Html = getHTTPPage(Url)
Response.write Html
'常用函数
'1、输入url目标网页地址, 返回值getHTTPPage是目标网页的html代码
function getHTTPPage(url)
dim Http
set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
set http=nothing
if err.number<>0 then err.Clear
end function
'2、转换乱玛, 直接用xmlhttp调用有中文字符的网页得到的将是乱玛, 可以通过adodb.stream组件进行
转换
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function

Dim ScriptAddress, M_ItemUrl, M_item

Function GetUrl()
ScriptAddress = CStr(Request.ServerVariables("SCRIPT_NAME")) '取得当前地址
M_ItemUrl = ""
If (Request.QueryString <> "") Then
ScriptAddress = ScriptAddress & "?"
For Each M_item In Request.QueryString
If InStr(page,M_Item)=0 Then
M_ItemUrl = M_ItemUrl & M_Item &"="& Server.URLEncode(Request.QueryString
(""&M_Item&""))
End If
Next
end if
GetUrl = ScriptAddress & M_ItemUrl
End Function
%>

 

 自己要编写其它应用也行,下面简单介绍下:
<%URL=Request.ServerVariables("QUERY_STRING")%>
<%=URL%>
上面是404错误页面的代码,获取当前URL值的语句,例如:
原来动态地址:http://www.*****.com/post.asp?id=*
随便输入个地址:http://www.*****.com/post-id-*.html
页面会返回值:404;http://www.*****.com:80/post-id-*.html
我们可以利用replace把404;http://www.*****.com:80/post-id-过滤,
<% URL=replace(Request.ServerVariables("QUERY_STRING"),"404;http://www.*****.com:80/post-id-","") %>
URL值就只剩下*.html了,再利用split把它拆开,以.为主,
<% sURL=split(URL,".") %>
那最后就是,sURL(0)等于获取*的值,sURL(1)等于获取html的值,
我们把原先post.asp文件代码把获取id值改为sURL(0),然后把代码保存在404错误页面,这就实现网站伪静态功能了

 

如果说看帖是一种涵养 /那么——回贴就是一种美德
如果说发帖是一种信念/那么——回贴就是一份尊重
如果说删贴是一种无奈/那么——回贴就是一份关怀
只发经典,拒绝灌水。
返回页首↑


津ICP备09000164号

联系我们 - piaoling Corporation - 论坛存档 - 返回顶端
Powered by BBSXP 2007 ACCESS © 1998-2025
Server Time 2025/1/14 0:59:33
Processed in 0.03 second(s)
飘凌大杂烩