2013-03-13 20 views
7

Pracuję nad klasyczną aplikacją asp. Mam użyć przepisywania URL na niektórych stronach.pobierz aktualny URL strony (używane ponowne napisanie adresu URL)

Jak mogę uzyskać aktualny adres strony w klasycznym asp?

Przykład: http://www.site.com/page.asp ---> url przepisać w IIS --->http://www.site.com/home/page

więc tutaj chcę aktualny adres URL strony, która jest http://www.site.com/home/page

Proszę mi pomóc. Dzięki.

+0

Nie można odczytać go za pomocą 'Request.ServerVariables (" nazwa_serwera ") i Request.ServerVariables (" url ")'? Nie wiem, czy to też działa z przepisanymi adresami URL ... –

+0

bez Żądania.ServerVariables ("nazwa_serwera") = www.site.com i Request.ServerVariables ("url") = page.asp – Maddy

+0

Czy możesz zaznaczyć jedną z tych odpowiedzi czy były dla ciebie pomocne? Jeśli nie, daj nam znać, abyśmy mogli znaleźć rozwiązanie. – Konrad

Odpowiedz

11

Można spróbować wyjściu wszystkie ServerVariables tak:

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

Może URL szukać już tam jest. Używamy modułu Rewrite i istnieje ServerVariable o nazwie HTTP_X_ORIGINAL_URL, która zawiera przepisaną ścieżkę URL, np. "/ home/page" w twoim przykładzie.

Protokół (HTTPS=ON/OFF) i Serwer (SERVER_NAME) można również znaleźć w Server Server.

18

Nie ma żadnej specjalnej funkcji, która to wszystko zdziała.

Najpierw trzeba uzyskać protokół (jeśli nie zawsze jest http):

Dim protocol 
Dim domainName 
Dim fileName 
Dim queryString 
Dim url 

protocol = "http" 
If lcase(request.ServerVariables("HTTPS"))<> "off" Then 
    protocol = "https" 
End If 

Teraz reszta z opcjonalnym ciągu zapytania:

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 

Nadzieję, że pracuje dla Ciebie.

0

Jeśli używasz URL Rewrite, dane URL mogą być pobierane tylko w ten sposób:

Request.ServerVariables ("HTTP_X_ORIGINAL_URL")

Przykład

Dim domainName, urlParam 
domainName = Request.ServerVariables("SERVER_NAME") 
urlParam = Request.ServerVariables("HTTP_X_ORIGINAL_URL") 
response.write(domainName & urlParam) 
Powiązane problemy