asp擷取URL參數的幾種方法分析總結 原創

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.