我使用以下代码获取当前页面的URL。
thispage ="http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL") & "?" & Request.Querystring
我想检查用户是否在URL末尾键入了默认文档(index.asp)并将其删除(通过重定向到地址栏中没有默认文档的干净URL)。
但是,即使未在地址栏中输入,此代码也始终包含默认文档,例如当地址栏中有http://example.com/index.asp时,上面的代码会返回http://example.com。
如何编辑上述代码以区分这些网址?
答案 0 :(得分:1)
url = Request.ServerVariables("URL")
url = Left( url, Len( url, Right( url, InStrRev( url, "/" ) - 1 )
thispage ="http://" & Request.ServerVariables("SERVER_NAME") & url & "/?" & Request.Querystring
答案 1 :(得分:1)
在您不知道适用的默认文档是什么的环境中,这是一项复杂的任务,但我认为在您的情况下它总是index.asp
。
如果是这样,您可以使用以下内容完成此操作。
defaultFile = "/index.asp" ' leading slash is mandatory
reqUrl = Request.ServerVariables("URL")
reqQS = Request.ServerVariables("QUERY_STRING")
'put a leading question mark if there's a query
If reqQS <> "" Then
reqQS = "?" & reqQS
End If
'check if URL ends with "/index.asp" (case-insensitive comparison should be made)
If StrComp(Right(reqUrl, Len(defaultFile)), defaultFile, vbTextCompare) = 0 Then
' remove from reqUrl by preserving leading slash
reqUrl = Left(reqUrl, Len(reqUrl) - Len(defaultFile) + 1)
End If
thispage = "http://" & Request.ServerVariables("SERVER_NAME") & reqUrl & reqQS