私は古典的なaspアプリケーションに取り組んでいます。一部のページでURL書き換えを使用しています。
クラシックASPでページの現在のURLを取得するにはどうすればよいですか?
例: http://www.site.com/page.asp ---> url rewrite in IIS ---> http:/ /www.site.com/home/page
だからここで私は http://www.site.com/home/page であるページの現在のURLが欲しいです
私を助けてください。ありがとう。
次のように、すべてのServerVariablesを出力してみてください。
for each key in Request.Servervariables
Response.Write key & " = " & Request.Servervariables(key) & "<br>"
next
たぶんあなたが探しているURLはすでにそこにあります。 Rewriteモジュールを使用し、HTTP_X_ORIGINAL_URL
と呼ばれるServerVariableがあります。これには書き換えられたURLパスが含まれています。あなたの例では「/ home/page」。
プロトコル(HTTPS=ON/OFF
)とサーバー(SERVER_NAME
)もServerVariablesにあります。
それをすべて行う派手な1つの機能はありません。
まず、プロトコルを取得する必要があります(常にhttpであるとは限りません)。
Dim protocol
Dim domainName
Dim fileName
Dim queryString
Dim url
protocol = "http"
If lcase(request.ServerVariables("HTTPS"))<> "off" Then
protocol = "https"
End If
残りはオプションのクエリ文字列です。
domainName= Request.ServerVariables("SERVER_NAME")
fileName= Request.ServerVariables("SCRIPT_NAME")
queryString= Request.ServerVariables("QUERY_STRING")
url = protocol & "://" & domainName & fileName
If Len(queryString)<>0 Then
url = url & "?" & queryString
End If
それがあなたのために働くことを願っています。
URL書き換えを使用する場合、URLデータは次の方法でのみ取得できます。
Request.ServerVariables( "HTTP_X_ORIGINAL_URL")
例
Dim domainName, urlParam
domainName = Request.ServerVariables("SERVER_NAME")
urlParam = Request.ServerVariables("HTTP_X_ORIGINAL_URL")
response.write(domainName & urlParam)