我正在开发经典的 asp 应用程序。我在某些页面上使用了 URL 重写。
如何在经典 asp 中获取页面的当前 url?
示例: http ://www.site.com/page.asp ---> IIS 中的 url 重写 ---> http://www.site.com/home/page
所以在这里我想要页面的当前网址,即http://www.site.com/home/page
请帮我。谢谢。
我正在开发经典的 asp 应用程序。我在某些页面上使用了 URL 重写。
如何在经典 asp 中获取页面的当前 url?
示例: http ://www.site.com/page.asp ---> IIS 中的 url 重写 ---> http://www.site.com/home/page
所以在这里我想要页面的当前网址,即http://www.site.com/home/page
请帮我。谢谢。
没有一种功能可以做到这一切。
首先,您需要获取协议(如果它不总是 http):
Dim protocol
Dim domainName
Dim fileName
Dim queryString
Dim url
protocol = "http"
If lcase(request.ServerVariables("HTTPS"))<> "off" Then
protocol = "https"
End If
现在剩下的带有可选的查询字符串:
domainName= Request.ServerVariables("SERVER_NAME")
fileName= Request.ServerVariables("SCRIPT_NAME")
queryString= Request.ServerVariables("QUERY_STRING")
url = protocol & "://" & domainName & fileName
If Len(queryString)<>0 Then
url = url & "?" & queryString
End If
希望对你有效。
您可以尝试像这样输出所有 ServerVariables:
for each key in Request.Servervariables
Response.Write key & " = " & Request.Servervariables(key) & "<br>"
next
也许您寻找的 URL 已经存在。我们使用 Rewrite 模块,并且调用了一个 ServerVariable HTTP_X_ORIGINAL_URL
,其中包含重写的 URL 路径,例如您的示例中的“/home/page”。
协议 ( HTTPS=ON/OFF
) 和服务器 ( SERVER_NAME
) 也可以在 ServerVariables 中找到。
如果使用 URL Rewrite,则只能通过这种方式检索 url 数据:
Request.ServerVariables("HTTP_X_ORIGINAL_URL")
例子
Dim domainName, urlParam
domainName = Request.ServerVariables("SERVER_NAME")
urlParam = Request.ServerVariables("HTTP_X_ORIGINAL_URL")
response.write(domainName & urlParam)