需要用到這個功能,沒怎麼測試呢,測試後給具體代碼
假如地址是:
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的話,功能會有所增強,搜尋的友好型,也會加強