使用ASP的错误陷阱实现网站虚拟目录功能
我想大家一定都看见过在很多提供个人主页的网站上有这个虚拟目录功能。
就是http://xxx.xxx.xxx/~Batman就会连接到我的主页上(假设我有这个主页,呵呵)
那么我们怎么使用纯粹的ASP技术来实现这个功能了,例如在chinaasp上如果
联接是http://www.chinaasp.com/~Batman就会自动连接到与Batman有关的个人信息上呢?
下面将介绍一种使用ASP的错误陷阱技术:
在IIS中大家都知道有一个自定义出错处理功能,我以前也介绍过好几次的。
从IIS控制管理器选中Default Web Site然后单击右键,选择属性,再选择自定义
错误,然后单击编辑。。按钮等等。。
好了。现在将HTTP 404 error这个错误重新自定义为使用AspErr.Asp这个文件
当然这个文件的代码就在下面罗。
文件AspErr.Asp代码如下:
<%
strTarget = Request.ServerVariables("QUERY_STRING")
' *** 看是否调用的虚拟目录格式即开头是否有“~”字符
if instr(strTarget, "~") then
' *** 字符处理,去掉字符串中的“~”和“.ASP”
strAlias = trim(right(strTarget, len(strTarget) - instr(strTarget, "~")))
strAlias = LCase(replace(UCase(strAlias), ".ASP", ""))
if trim(strAlias) <> "" then
' *** 查询是否存在这个用户名(即虚拟目录)
Set recTemp = Server.CreateObject("ADODB.RecordSet")
recTemp.Source = "select user_id, list_type from users where alias_file = '" & Replace(strAlias, "'", "''") & "'")
recTemp.ActiveConnection = conDB
recTemp.Open
' *** 查询个人信息,并显示他的信息,我暂且借用飞鸟大哥写的
'myinfo.asp文件,可不要敲我哦,呵呵
if not (recTemp.BOF and recTemp.EOF) then
strRedir = "myinfo.asp?user_id=" & Server.URLEncode(trim(recTemp("User_ID")))
recTemp.Close
Set recTemp = Nothing
Response.Redirect strRedir
end if
recTemp.Close
Set recTemp = Nothing
end if
end if
' *** 如果找不着对应用户名的虚拟目录的话,就显示错误呀
Response.Status = "404 Not Found"
%>
<html>
<head><title>404 Not Found</title></head>
<body>
404 Not Found
</body>
</html>
关键词:以前收集的一些资料---运用ASP的出错陷阱完成网站虚拟目录技巧