一:url中还带有?的方式 程序代码:
<% dim MyUrl,ID1,ID MyUrl=Request.ServerVariables("QUERY_STRING") ID1=replace(myurl,".html","") If Instr(ID1,"-")>0 Then 这里是我自己用来获取多参数的,如 http://localhost/news.asp?id=25&cat=2 id2=Split(ID1,"-") 经转换可以用数组形式来取得,-只是一个标示符,可以为你愿意的字符,如&或者单词。 ID=id2(0) cat=id2(1) 已经获取了正常的cat参数了 Else ID=ID1 End If %> 这个方法生成的页面连接带有? 二:url不带?,但是使用了404错误的思路 正常地址:http://localhost/news.asp?id=25 构造地址:http://localhost/25.html (后缀名也可以自定义,php、aspx、asp) 做法: 定义系统的404错误页面跳转到你的程序执行页面,该文件可以任意命名,如我这里假定为:ReDirect.asp 开头代码如下: 程序代码:
<% Domain=Request.ServerVariables("HTTP_HOST") URL=Replace(Request.ServerVariables("QUERY_STRING"),"404http://"&Domain,"") Id=Replace(CurrURL,".html","") Id=Replace(Id,"/","") %> 原理:当你访问这个不存在的页面的时候,系统会自动重定向到ReDirect.asp页面,之后你可以使用asp代码来获取当前的Request.ServerVariables("QUERY_STRING") 程序代码:
<%response.write Request.ServerVariables("QUERY_STRING")%> 哪么可以替换掉无用的信息,获取我们的参数25,再送进数据库就可以正常查询了,而且连接地址是不会再次跳转的,地址栏仍然是http://localhost/25.html,当然,这是稍微有些影响效率的,不过对于计算机来说,也不算什么大不了的。现在很多的虚拟主机都支持自定义错误连接的。 三:目录式伪静态 正常地址:http://localhost/news.asp?id=25 构造地址:http://localhost/news/25 我们经常见到QQ可见一类的地址都是http://qzone.qq.com/1234565/一类的。目录式的地址,其实利用我刚才讲到的第二个方法,我们可以轻易的做到这一点。 现在开工: 我们把http://www.koodai.com.cn/article.asp?id=25伪装成http://www.koodai.com.cn/article/25 或者 http://www.koodai.com.cn/25 (当然你可以看到只是多了两个替换操作而已:-) ) 还是如第二步一样做,先建立一个404错误页面,当然代码要稍微修改了: 程序代码:
<% Domain=Request.ServerVariables("HTTP_HOST") ID=Replace(Request.ServerVariables("QUERY_STRING"),"404http://"&Domain&"/news/","") %> 当然如果你又有news又有product,呵呵也就是数据库中信息的类别不同时候,不知道该怎么办?不是吧兄弟,你不会用 来判断吗!?很简单的,你又有了跳转的思路了。 当然了,不得不说的是可能css样式表会有问题,建议你直接使用: 程序代码:
<LINK href="http://<%=SITE_URL%>/css/style.css" rel=Stylesheet type=text/css> http:///css/style.css" rel=Stylesheet type=text/css> 当然图片地址也可以这样做啊!你真聪明~^_^ 最后,不得不提的是安全性检查,请在把获取到的参数放进数据库之前,务必做好防sql注射处理哦~ 程序代码:
当然这只是一个简单的检查,不过也很是实用,可以自己写函数检验,这里就不啰嗦了<% if IsNumeric(Id)=False then response.write("<script>alert("&Id&"是有问题的参数!)location.href=""http://www.koodai.com.cn""</script>") response.end end if %> 其实呢在其他场合我们都是使用服务器做转向的,而在这里我们只是利用了404错误跳转来完成工作,也就是由这个过程来充当中间件。 本文系博主原创,转载须说明出处哦~ 文章出处:http://snllll.cn/article/458.htm |