static bool CheckForHostnameAliasRedirect(HttpContext httpContext)
        {
            if (UrlUtils.IsAdminConsoleRequest(httpContext) ||
                UrlUtils.IsRendererRequest(httpContext) ||
                new UrlSpace(httpContext).ForceRelativeUrls)
            {
                return(false);
            }

            var hostnameBinding = HostnameBindingsFacade.GetAliasBinding(httpContext);

            if (hostnameBinding == null)
            {
                return(false);
            }

            string hostname = httpContext.Request.Url.Host.ToLowerInvariant();

            var request = httpContext.Request;

            string newUrl = request.Url.AbsoluteUri.Replace("://" + hostname, "://" + hostnameBinding.Hostname);

            httpContext.Response.Redirect(newUrl, false);
            httpContext.ApplicationInstance.CompleteRequest();
            return(true);
        }
示例#2
0
        private static string GetPagePreviewUrl(PageUrlData pageUrlData)
        {
            var httpContext = HttpContext.Current;

            var urlSpace = new UrlSpace();

            if (HostnameBindingsFacade.GetBindingForCurrentRequest() != null ||
                HostnameBindingsFacade.GetAliasBinding(httpContext) != null)
            {
                urlSpace.ForceRelativeUrls = true;
            }

            return(PageUrls.BuildUrl(pageUrlData, UrlKind.Public, urlSpace)
                   ?? PageUrls.BuildUrl(pageUrlData, UrlKind.Renderer, urlSpace));
        }