2011-12-22 13 views
5

ASP.netではなくASPを使用してルートURLを取得するにはどうすればよいですか?私はこの質問( How do I get the site root URL?ASP.netではなくASPを使用してルートURLを取得するには

を発見したが、それはASP.netに関連している 。

=====================================

アッバスの答えは私に提供します

親サイトのルートURL

が、私にサブサイトのルートURLを提供していません

========================= ============

+1

の可能重複[ResolveUrl/Url.ContentクラシックASPで等価](http://stackoverflow.com/questions/7963635/resolveurl-url-content-equivalent-in-classic-asp) –

答えて

12

従来のASPには、すべてのサーバーと環境を含むRequest.ServerVariablesコレクションがありましたls。サンプル.NETコードの古典的なASPバージョンは次のようになります。

function getSiteRootUrl() 
    dim siteRootUrl, protocol, hostname, port 

    if Request.ServerVariables("HTTPS") = "off" then 
     protocol = "http" 
    else 
     protocol = "https" 
    end if 
    siteRootUrl = protocol & "://" 

    hostname = Request.ServerVariables("HTTP_HOST") 
    siteRootUrl = siteRootUrl & hostname   

    port = Request.ServerVariables("SERVER_PORT") 
    if port <> 80 and port <> 443 then 
     siteRootUrl = siteRootUrl & ":" & port 
    end if 

    getSiteRootUrl = siteRootUrl 
end function 
+0

もし私サイトのURLがhttp://parentSite/subsite/default.aspの場合、上記のURLはhttp:// parentSite/subsiteをルートURLとして返しますか? – Hoque

+0

私は.NETコードをClassic ASPに翻訳していますので、あなたの例のコードが行っていたことをやります。あなたのサイトがSSLを使用せずにポート80を使用している場合、上のコードはhttp:// parentSite/subsiteを表示します。それを理解する最善の方法は、それを実行し、それを使って遊ぶことです。それは非常に簡単ですし、あなたが困難に遭遇した場合は、ここに投稿することができます。 – Abbas

+0

私はテストしましたが、サブサイトには行きません – Hoque

0

これはあなたに必要なものを提供します。

getSiteURL() 

Function getSiteURL() 
    port = "http" 
    https = lcase(request.ServerVariables("HTTPS")) 
    if https <> "off" then prot = "https" 
    domainname = Request.ServerVariables("SERVER_NAME") 
    filename = Request.ServerVariables("SCRIPT_NAME") 
    querystring = Request.ServerVariables("QUERY_STRING") 
    fullpath = port & "://" & domainname & Request.ServerVariables("SCRIPT_NAME") 
    filename = right(fullpath, InStr(StrReverse(fullpath), StrReverse("/"))) 

    url = Replace(fullpath, filename, "/") 

    response.write url & "<br>" 
end Function 
+0

いいえ、そうではありません。それは、私が関数と呼んだところからurlの一部を提供します。たとえば、このページのparentSite/childsite/Folder/Default.aspから関数を呼び出すと、parentSite/childsite/Folderが返されます。 – Hoque

+0

それでは、あなたが何を望んでいるのかわからないのですか?私が投稿したものはあなたのページへのパスを返します。ページ上の機能が表示したい機能と異なるのですか?また、URLを取得するページはどこですか?関数を使用するには、関数に情報を渡す必要があります。 – Robert

+0

は、子サイトのルートURLとしてparentSite/childSiteを返したい場合は、URLを作成するページがフォルダの下にある場合は、必要なURLを解析するか、呼び出しページの関数に渡す必要があります。 – Hoque

関連する問題