【问题标题】:How do you get the name of the current virtual directory using ASP Classic?如何使用 ASP Classic 获取当前虚拟目录的名称?
【发布时间】:2026-01-14 12:40:01
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: asp-classic virtual-directory


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      尝试使用:Request.ServerVariables("SCRIPT_NAME")

      如果对您不起作用,请尝试使用 Request.ServerVariables("INSTANCE_META_PATH")。

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

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

      【讨论】: