如何使用ASP Classic获取当前虚拟目录的名称?

时间:2009-01-22 21:54:31

标签: asp-classic virtual-directory

如何使用ASP Classic获取当前虚拟目录的名称?在ASP.NET中,您可以使用Request.ApplicationPath来查找此内容。

例如,假设您有一个这样的网址:

http://localhost/virtual_directory/subdirectory/file.asp

在ASP.NET中,Request.ApplicationPath将返回 / virtual_directory

2 个答案:

答案 0 :(得分:6)

您可以从多个服务器变量之一获取文件的虚拟路径 - 尝试:

  • Request.ServerVariables("PATH_INFO")
  • Request.ServerVariables("SCRIPT_NAME")

(但不是之前建议的INSTANCE_META_PATH - 这会为您提供元基本路径,而不是您期望的虚拟路径。

服务器变量将为您提供虚拟路径,包括任何子目录和文件名 - 在您的示例中,您将获得“/virtual_directory/subdirectory/file.asp”。如果您只是想要虚拟目录,则需要使用您喜欢的任何方法在第二个正斜杠后删除所有内容,例如:

s = Request.ServerVariables("SCRIPT_NAME")
i = InStr(2, s, "/")
If i > 0 Then
    s = Left(s, i - 1)
End If

或:

s = "/" & Split(Request.ServerVariables("SCRIPT_NAME"), "/")(1)

答案 1 :(得分:0)

尝试使用:Request.ServerVariables(“SCRIPT_NAME”)

或尝试使用Request.ServerVariables(“INSTANCE_META_PATH”),如果这对您不起作用。

有关其他服务器变量的列表,请尝试以下链接:

http://www.w3schools.com/asp/coll_servervariables.asp