Как я могу получить baseurl сайта? - PullRequest
170 голосов
/ 14 сентября 2011

Я хочу написать небольшой вспомогательный метод, который возвращает базовый URL сайта. Вот что я придумал:

public static string GetSiteUrl()
{
    string url = string.Empty;
    HttpRequest request = HttpContext.Current.Request;

    if (request.IsSecureConnection)
        url = "https://";
    else
        url = "http://";

    url += request["HTTP_HOST"] + "/";

    return url;
}

Есть ли в этом какая-то ошибка, о которой вы можете подумать? Кто-нибудь может улучшить это?

Ответы [ 13 ]

0 голосов
/ 29 октября 2018
 string baseURL = HttpContext.Request.Url.Host;
0 голосов
/ 01 июня 2018

Пожалуйста, используйте код ниже

string.Format("{0}://{1}", Request.url.Scheme, Request.url.Host);
0 голосов
/ 14 сентября 2011

вы могли бы добавить в порт для порта 80 / SSL не *? 1001 *

что-то вроде:

if (HttpContext.Current.Request.ServerVariables["SERVER_PORT"] != null && HttpContext.Current.Request.ServerVariables["SERVER_PORT"].ToString() != "80" && HttpContext.Current.Request.ServerVariables["SERVER_PORT"].ToString() != "443")
            {
                port = String.Concat(":", HttpContext.Current.Request.ServerVariables["SERVER_PORT"].ToString());
            }

и использовать это в конечном результате?

...