8

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

我有以下网址(这是动态的)

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

如何使用经典 ASP 提取“boxes-pic004”部分

谢谢

4

4 回答 4

12
<%
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", "")删除扩展名。

于 2013-09-05T09:14:53.223 回答
6

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

例如页面网址: 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
于 2015-09-23T12:03:26.443 回答
2

简单的

只需使用Request.ServerVariables("SCRIPT_NAME")然后进行一些切线即可获得所需的东西。

于 2013-09-05T09:09:49.097 回答
1

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

  1. 使用 IIS - 有关如何提取完整 URL,请参阅上一篇文章:获取页面的当前 url(使用 URL 重写)

  2. 使用 404 - 这是我过去的做法,访问原始 URL 的唯一方法是检查查询字符串。404 URL 看起来像这样:

    https://website.com/rewrite.asp?404;http://website.com/images/gal/boxes-pic004.asp
    

要获取 URL,我使用如下内容:

    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

这将为您提供完整的原始 URL,然后您可以使用简单的拆分提取所需的部分,例如:

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

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

希望这可以帮助。

于 2013-09-05T10:00:38.493 回答