asp取得目前網址,或取得目前頁面的所以參數要用到這個功能,沒怎麼測試呢,測試後給具體程式碼
如果地址是:
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的話,功能會有所增強,搜尋的友善型,也會加強