获取页面的当前URL(使用的URL重写)

时间:2013-03-13 20:00:27

标签: asp-classic vbscript

我正在研究经典的asp应用程序。 我在某些页面上使用了URL重写。

如何在经典asp中获取页面的当前网址?

实施例: http://www.site.com/page.asp --->在IIS中重写url ---> http://www.site.com/home/page

所以我想要页面的当前网址为http://www.site.com/home/page

请帮帮我。 感谢。

3 个答案:

答案 0 :(得分:19)

没有任何花哨的功能可以完成所有这些。

首先你需要获得协议(如果它不总是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

希望它适合你。

答案 1 :(得分:17)

您可以尝试输出所有ServerVariables,如下所示:

for each key in Request.Servervariables
  Response.Write key & " = " & Request.Servervariables(key) & "<br>"
next

也许您寻找的网址已经存在。我们使用Rewrite模块,并且有一个名为HTTP_X_ORIGINAL_URL的ServerVariable包含重写的URL路径,例如:你的例子中有“/ home / page”。

协议(HTTPS=ON/OFF)和服务器(SERVER_NAME)也可以在ServerVariables中找到。

答案 2 :(得分:1)

如果您使用URL Rewrite,则只能以这种方式检索网址数据:

<强> 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)