2011-12-22 16 views
5

Jak uzyskać adres URL roota za pomocą ASP, a nie ASP.net? Znalazłem to pytanie ( How do I get the site root URL? )Jak uzyskać adres URL roota za pomocą ASP, nie ASP.net

ale jest to związane z ASP.NET.

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

odpowiedź Abbasa zapewnić mi

rodzic korzeń site url

ale nie daje mi głównego adresu URL podstrony

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

+1

możliwe duplikat [ResolveUrl/Url.Content Odpowiednik w klasycznej ASP] (http://stackoverflow.com/questions/7963635/resolveurl-url-content-equivalent-in-classic-asp) –

Odpowiedz

12

Klasyczna ASP miała kolekcję Request.ServerVariables, która zawierała wszystkie detai serwera i środowiska ls. Oto przykład klasycznej wersji ASP przykładowego kodu .NET:

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

Jeśli moja URL strony to http: //parentSite/subsite/default.asp, czy powyższy kod zwróci http: // parentSite/subsite jako adres URL roota? – Hoque

+0

Przetłumaczyłem kod .NET na klasyczną ASP, więc zrobi to, co robi kod w twoim przykładzie. Jeśli twoja strona nie używa SSL i używa portu 80, powyższy kod wyświetli: http: // parentSite/subsite. Najlepszym sposobem, aby to zrozumieć, jest uruchomienie go i zabawa z nim. Jest to dość proste i jeśli napotkasz trudności, możesz je opublikować tutaj. – Abbas

+0

Testowałem i nie trafiłem do podstrony – Hoque

0

To powinno Ci dać to, czego chcesz.

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

Nie, nie ma. Udostępnia część adresu URL, z której nazwałem funkcję. Na przykład, jeśli zadzwonię do funkcji z tej strony parentSite/childsite/Folder/Default.asp zwraca parentSite/childsite/Folder – Hoque

+0

, więc chyba nie jestem pewien, czego chcesz? To, co napisałem, zwróci ścieżkę do strony. Czy funkcja na stronie jest inna niż ta, którą chcesz wyświetlić, i gdzie jest strona, na którą otrzymasz adres URL? Może być konieczne przekazanie informacji do funkcji w celu jej użycia. – Robert

+0

chciałby zwrócić parentSite/childSite jako adres URL strony głównej użytkownika – Hoque

Powiązane problemy