จริงๆ แล้ว ความตั้งใจเดิมของฉันในการทำเช่นนี้คือเพื่อป้องกันฮอตลิงก์! โปรดช่วยฉันค้นหาวิธีกำจัด hotlinking ผ่านโค้ด! ตราบใดที่ HTTP_REFERER ไม่ได้มาจาก (google.com google.cn *.google.com *.google.cn baidu.com *.baidu.com) คำขอจากแหล่งที่มา URL เหล่านี้จะถูกส่งต่อไปยัง 404
คัดลอกรหัสรหัสดังต่อไปนี้:
-
Dim a, reg
a = Request.ServerVariables (HTTP_REFERER) รายการ
ตั้งค่า reg = RegExp ใหม่
reg.Pattern = ^http://(?:[^.]*/.)?(?:google/.com|google/.cn|baidu/.com)(/|$)
reg.IgnoreCase = จริง
ถ้าไม่ reg.Test(a) จากนั้น
เซเร็ก=ไม่มีอะไร
Response.Status = 404 ไม่พบไฟล์
การตอบสนองสิ้นสุด
สิ้นสุดถ้า
เซเร็ก=ไม่มีอะไร
' .... ดำเนินการต่อ
-
คัดลอกรหัสรหัสดังต่อไปนี้:
<%@LANGUAGE=รหัส VBSCRIPT=65001%>
<%จาง OK_URL,URL,HTTP_REFERER
'ปรับแต่งสตริงที่ต้องการกรอง โดยคั่นด้วย |
OK_URL= ข้อมูลการยกเว้นของ google.com|google.cn|baidu.com
OK_URL= split(OK_URL,|) 'แยกข้อมูลการยกเว้น
URL=404.htm 'ตั้งค่าเพจให้ชี้ไป'
HTTP_REFERER=Request.ServerVariables(HTTP_REFERER)'รับ URL แหล่งที่มา
ถ้า HTTP_REFERER<> แล้ว
สำหรับผู้อ้างอิงแต่ละคนใน HTTP_REFERER
สำหรับ i=0 ถึง Ubound(OK_URL)
ถ้า Instr(LCase(HTTP_REFERER(REFERER)),OK_URL(i))=0 Then'If the source URL is not one of one of the ข้อยกเว้นข้างต้น, ให้กลับไปยังหน้าเว็บที่ชี้ไปโดยตรง!
Response.Redirect(URL):Response.End()
จบถ้า
ต่อไป
ต่อไป
สิ้นสุดถ้า%>