2013-03-13 30 views
7

私は古典的なASPアプリケーションで作業しています。 一部のページでURLリライトを使用しています。ページの現在のURLを取得する(URLリライトを使用)

クラシックASPでページの現在のURLを取得するにはどうすればよいですか?

例:ので、ここで http://www.site.com/page.asp ---> IISのURLリライト--->http://www.site.com/home/page

私はhttp://www.site.com/home/page

あるページの現在のURLが私を助けてくださいしたいです。おかげさまで

+0

あなたすることはできません'Request.ServerVariables(" server_name ")&Request.ServerVariables(" url ")'でそれを読んでください。 –

+0

いいえRequest.ServerVariables( "server_name")= www.site.comとRequest.ServerVariables( "url")= page.asp – Maddy

+0

これらの回答にマークしてください彼らがあなたにとって有益だったら?そうでない場合は、私たちに解決策を見つけることができるようにお知らせください。 – Konrad

答えて

11

あなたは出力にそのようなすべてのServerVariablesを試すことができます。

for each key in Request.Servervariables 
    Response.Write key & " = " & Request.Servervariables(key) & "<br>" 
next 

たぶん、あなたが求めるURLがすでにあります。書き換えモジュールを使用し、HTTP_X_ORIGINAL_URLと呼ばれるServerVariableに書き換えられたURLパスが含まれています。 "/ home/page"と入力します。

プロトコル(HTTPS=ON/OFF)とサーバー(SERVER_NAME)もServerVariablesにあります。

18

それだけの機能はありません。

まず、(それは常に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 

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

0

あなたは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) 
関連する問題