ASP จำเป็นต้องใช้ฟังก์ชันนี้เพื่อรับ URL ปัจจุบันหรือรับพารามิเตอร์ทั้งหมดของหน้าปัจจุบัน ฉันยังไม่ได้ทดสอบมากนัก ฉันจะให้รหัสเฉพาะแก่คุณหลังจากการทดสอบ
หากที่อยู่คือ:
http://dxy.com:8082/test/geturl.asp?Param-VR52tmx3syn03777.html
วิธีที่ 1: แบบง่าย ไม่มีพารามิเตอร์ มีเพียงเส้นทางเสมือนเท่านั้น
คัดลอกรหัสรหัสดังต่อไปนี้:
GetUrl =request(url) 'เนื่องจากเราไม่มีคำว่า url= เราจึงสามารถส่งต่อได้โดยตรง
วิธีที่ 2: รับ URL ทั้งหมดและรับพารามิเตอร์
คัดลอกรหัสรหัสดังต่อไปนี้:
'รับที่อยู่ของหน้าปัจจุบัน
ฟังก์ชัน GetUrl()
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
Dim strTemp
ถ้า LCase(Request.ServerVariables(HTTPS)) = ปิด จากนั้น
strTemp = http://
อื่น
strTemp = https://
สิ้นสุดถ้า
strTemp = strTemp & คำขอ ServerVariables (SERVER_NAME)
หาก Request.ServerVariables(SERVER_PORT) <> 80 ดังนั้น strTemp = strTemp & : & Request.ServerVariables(SERVER_PORT)
strTemp = strTemp & คำขอ ServerVariables (URL)
ถ้า Trim(Request.QueryString) <> ดังนั้น strTemp = strTemp & ? & Trim(Request.QueryString)
GetUrl = strTemp
ฟังก์ชันสิ้นสุด
หลังจากทดสอบโค้ดนี้ เส้นทางที่ได้รับคือ:
/test/geturl.asp?Param-VR52tmx3syn03777.html=
วิธีที่ 2: รับเส้นทางเสมือนและรับพารามิเตอร์
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่นส่วนตัว GetUrl()
ที่อยู่สคริปต์ Dim,M_ItemUrl,M_item
ScriptAddress = CStr(Request.ServerVariables(SCRIPT_NAME)) 'รับที่อยู่ปัจจุบัน
M_ItemUrl=
ถ้า (Request.QueryString <> ) จากนั้น
ScriptAddress = ที่อยู่สคริปต์ & ?
สำหรับแต่ละรายการ M_item ใน Request.QueryString
หาก M_item = page_num ให้ออกสำหรับ 'ฟังก์ชันที่นี่คือการกรองพารามิเตอร์ของ Page_num ออก (พารามิเตอร์นี้ตั้งค่าด้วยตัวเองใน page_turn.asp และเปลี่ยนแปลงตามการตั้งค่าส่วนบุคคล) มิฉะนั้นจะถูกซ้อนทับทุกครั้งที่เปิดเพจ แม้ว่าพารามิเตอร์จะไม่ส่งผลกระทบต่อฟังก์ชั่น แต่ก็ยังไม่ดี~~
ถ้า InStr(page,M_Item)=0 แล้ว
M_ItemUrl = M_ItemUrl & M_Item &=& Server.URLEncode(Request.QueryString(&M_Item&))
อื่น
M_ItemUrl = M_ItemUrl & M_Item &=& Server.URLEncode(คำขอ.QueryString(&M_Item&)) & &
สิ้นสุดถ้า
ต่อไป
อื่น
ScriptAddress = ที่อยู่สคริปต์ & ?
สิ้นสุดถ้า
GetUrl = ที่อยู่สคริปต์ & M_ItemUrl
ฟังก์ชันสิ้นสุด
ที่อยู่ที่ได้รับจากโค้ดด้านบนคือ
http://dxy.com:8082/test/geturl.asp?Param-VR52tmx3syn03777.html
โดยพื้นฐานแล้วเหมือนกัน
หากเราต้องการได้สิ่งหลังตัวเลข ? เราสามารถใช้โค้ดต่อไปนี้
คัดลอกรหัสรหัสดังต่อไปนี้:
response.write แทนที่ (request.querystring,.html,)
สิ่งที่เราได้รับคือ Param-VR52tmx3syn03777 ตรงกับความต้องการของเราหรือไม่?
PS: สถานการณ์ทั้งหมดข้างต้นมีไว้สำหรับ ASP ล้วนๆ เท่านั้น หากรวมกับ urlrewrite ฟังก์ชั่นจะได้รับการปรับปรุง และความสะดวกในการค้นหาก็จะได้รับการปรับปรุงด้วย