web-dev-qa-db-ja.com

ページの現在のURLを取得します(URL書き換えを使用)

私は古典的な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が欲しいです

私を助けてください。ありがとう。

10
Maddy

次のように、すべての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にあります。

17
gpinkas

それをすべて行う派手な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

それがあなたのために働くことを願っています。

20
Konrad

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)
1
Entwickler Mak