2011-12-22 23 views
5

Làm cách nào để có được url gốc bằng ASP chứ không phải ASP.net? Tôi đã tìm thấy câu hỏi này ( How do I get the site root URL? )Làm cách nào để có được url gốc bằng ASP chứ không phải ASP.net

nhưng nó có liên quan đến ASP.net.

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

câu trả lời của Abbas cung cấp cho tôi

mẹ url trang web gốc

nhưng không cung cấp cho tôi những url gốc subsite

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

+1

thể trùng lặp của [ResolveUrl/Url.Content tương đương trong Classic ASP] (http://stackoverflow.com/questions/7963635/resolveurl-url-content-equivalent-in-classic-asp) –

Trả lời

12

ASP cổ điển có bộ sưu tập Request.ServerVariables chứa tất cả máy chủ và môi trường detai ls. Dưới đây là những gì phiên bản ASP cổ điển của ví dụ mã .NET trông giống như:

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

Nếu tôi url trang web là http: //parentSite/subsite/default.asp, sẽ trở về http: // parentSite/subsite dưới dạng url gốc? – Hoque

+0

Tôi đã dịch mã .NET sang ASP cổ điển để nó sẽ làm những gì mã trong ví dụ của bạn đang làm. Nếu trang web của bạn không sử dụng SSL và sử dụng cổng 80, Mã ở trên sẽ hiển thị: http: // parentSite/subsite. Cách tốt nhất để hiểu nó là chạy nó và chơi xung quanh với nó. Nó khá đơn giản và nếu bạn gặp khó khăn, bạn có thể đăng chúng ở đây. – Abbas

+0

Tôi đã thử nghiệm và nó không đi đến subsite – Hoque

0

Điều này sẽ giúp bạn có được những gì bạn muốn.

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

Không, nó không. Nó cung cấp một phần của url từ nơi mà tôi đã gọi hàm. Ví dụ, nếu tôi gọi hàm từ trang này parentSite/childsite/Folder/Default.asp nó trả về parentSite/childsite/Folder – Hoque

+0

vì vậy sau đó tôi đoán tôi không chắc chắn những gì bạn muốn? Những gì tôi đăng sẽ trả về đường dẫn đến trang của bạn. Là chức năng trên một trang khác với bạn muốn hiển thị và trang đó là bạn sẽ nhận được URL trên? Bạn có thể phải chuyển thông tin đến hàm để nó được sử dụng. – Robert

+0

muốn trả về parentSite/childSite làm url gốc của trang con – Hoque

Các vấn đề liên quan