我正在研究经典的asp应用程序。 我在某些页面上使用了URL重写。
如何在经典asp中获取页面的当前网址?
实施例: http://www.site.com/page.asp --->在IIS中重写url ---> http://www.site.com/home/page
所以我想要页面的当前网址为http://www.site.com/home/page
请帮帮我。 感谢。
答案 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)