需要用到这个功能,没怎么测试呢,测试后给具体代码
假如地址是:
http://dxy.com:8082/test/geturl.asp?Param-VR52tmx3syn03777.html
方法一:简单,得不到参数,只有一个虚拟路径
复制代码 代码如下:
GetUrl =request("url") '这个因为我们没有url=什么字样所以直接pass掉
方法二:得到整个URL,得到参数
复制代码 代码如下:
'得到当前页面的地址
Function GetUrl()
On Error Resume Next
Dim strTemp
If LCase(Request.ServerVariables("HTTPS")) = "off" Then
strTemp = "http://"
Else
strTemp = "https://"
End If
strTemp = strTemp Request.ServerVariables("SERVER_NAME")
If Request.ServerVariables("SERVER_PORT") > 80 Then strTemp = strTemp ":" Request.ServerVariables("SERVER_PORT")
strTemp = strTemp Request.ServerVariables("URL")
If Trim(Request.QueryString) > "" Then strTemp = strTemp "?" Trim(Request.QueryString)
GetUrl = strTemp
End Function
经测试这个代码得到的路径为:
/test/geturl.asp?Param-VR52tmx3syn03777.html=
方法二:得到虚拟路径,得到参数
复制代码 代码如下:
Private Function GetUrl()
Dim ScriptAddress,M_ItemUrl,M_item
ScriptAddress = CStr(Request.ServerVariables("SCRIPT_NAME")) '取得当前地址
M_ItemUrl = ""
If (Request.QueryString > "") Then
ScriptAddress = ScriptAddress "?"
For Each M_item In Request.QueryString
If M_item = "page_num" Then Exit for '此处的作用就是过滤掉Page_num这个页次的参数(该参数是在page_turn.asp中自行设置的,根据个人设定而变),否则每次翻页都会叠加这个参数,虽然不影响功能,但总归不太好吧~~
If InStr(page,M_Item)=0 Then
M_ItemUrl = M_ItemUrl M_Item "=" Server.URLEncode(Request.QueryString(""M_Item""))
else
M_ItemUrl = M_ItemUrl M_Item "=" Server.URLEncode(Request.QueryString(""M_Item"")) ""
End If
Next
Else
ScriptAddress = ScriptAddress "?"
end if
GetUrl = ScriptAddress M_ItemUrl
End Function
上面的代码得到的地址为
http://dxy.com:8082/test/geturl.asp?Param-VR52tmx3syn03777.html
基本上差不多
如果只是为了得到?号后面的东西,我们可以用下面的代码
复制代码 代码如下:
response.write replace(request.querystring,".html","")
得到的就是Param-VR52tmx3syn03777是不是满足了我们的需要了呢
PS:上面的所有情况只是针对纯asp,如果结合urlrewrite的话,功能会有所增强,搜索的友好型,也会加强
您可能感兴趣的文章:- js修改地址栏URL参数解决url参数问题
- js分解url参数(面向对象-极简主义法应用)
- js URL参数的拼接方法比较
- 在JavaScript中获取请求的URL参数[正则]
- 在JavaScript中获取请求的URL参数
- jQuery 获取URL参数的插件
- javascript提取URL的搜索字符串中的参数(自定义函数实现)