经典ASP - 获取完整的URL名称

时间:2013-09-05 09:05:21

标签: asp-classic

我想知道是否有人可以帮助我。

我有以下网址(动态)

www.website.com/images/gal/boxes-pic004.asp

如何使用经典ASP

提取'boxes-pic004'部分

由于

4 个答案:

答案 0 :(得分:9)

<%
Dim sScriptLocation, sScriptName, iScriptLength, iLastSlash

sScriptLocation = Request.ServerVariables("URL")
iLastSlash      = InStrRev(sScriptLocation, "/")
iScriptLength   = Len(sScriptLocation)
sScriptName     = Right(sScriptLocation, iScriptLength - iLastSlash)
%>
然后

sScriptName将包含boxes-pic004.asp,然后您也可以使用Replace(sScriptName, ".asp", "")删除扩展程序。

答案 1 :(得分:7)

您可以尝试输出所有 ServerVariables ,例如

例如Page Url: https://www.google.com/gmail/inbox.asp?uid=1421&skyid=2823595

Dim strProtocol
Dim strDomain
Dim strPath
Dim strQueryString
Dim strFullUrl

If lcase(Request.ServerVariables("HTTPS")) = "on" Then 
    strProtocol = "https" 
Else
    strProtocol = "http" 
End If

strDomain= Request.ServerVariables("SERVER_NAME")
strPath= Request.ServerVariables("SCRIPT_NAME") 
strQueryString= Request.ServerVariables("QUERY_STRING")

strFullUrl = strProtocol & "://" & strDomain & strPath
If Len(strQueryString) > 0 Then
   strFullUrl = strFullUrl & "?" & strQueryString
End If

Response.Write "Domain : " & strDomain & "</br>"
Response.Write "Path : " & strPath & "</br>"
Response.Write "QueryString : " & strQueryString & "</br>"
Response.Write "FullUrl : " & strFullUrl & "</br>"

<强>输出:

Domain : www.google.com
Path : /gmail/inbox.asp
QueryString : uid=1421&skyid=2823595
FullUrl : https://www.google.com/gmail/inbox.asp?uid=1421&skyid=2823595

答案 2 :(得分:2)

简单

只需使用Request.ServerVariables("SCRIPT_NAME"),然后进行一些字符串切割即可获得所需的内容。

答案 3 :(得分:1)

我认为这取决于你用来进行URL重写的方法。

  1. 使用IIS - 请参阅此前一篇文章,了解如何提取完整网址:get current url of the page (used URL Rewrite)

  2. 使用404 - 这是我过去的工作方式,访问原始URL的唯一方法是检查查询字符串。 404 URL将如下所示:

    https://website.com/rewrite.asp?404;http://website.com/images/gal/boxes-pic004.asp
    
  3. 要获取网址,我使用以下内容:

        Function getURL()
            Dim sTemp
            sTemp = Request.Querystring
            ' the next line removes the HTTP status code that IIS sends, in the form "404;" or "403;" or whatever, depending on the captured error
            sTemp = Right(sTemp, len(sTemp) - 4)
            ' the next two lines remove both types of server names that IIS includes in the querystring
            sTemp = replace(sTemp, "http://" & Request.ServerVariables("HTTP_HOST") & ":80/", "")
            sTemp = replace(sTemp, "http://" & Request.ServerVariables("HTTP_HOST") & "/", "")
            sTemp = replace(sTemp, "https://" & Request.ServerVariables("HTTP_HOST") & "/", "")
            sTemp = replace(sTemp, "https://" & Request.ServerVariables("HTTP_HOST") & ":443/", "")
            ' the next bit of code will force our array to have at least 1 element
            getURL = sTemp
        End Function
    

    这将为您提供完整的原始网址,然后您可以使用简单的拆分提取您需要的部分:

        tmpArr = Split(getURL(),"/")
        strScriptName = tmpArr(UBound(tmpArr))
    

    然后strScriptName变量将返回“boxes-pic004.asp”。

    希望这有帮助。