private static string GetCustomPageNotFoundUrl(HttpContext httpContext) { if (httpContext == null) { return(null); } var binding = GetHostnameBinding(httpContext); if (string.IsNullOrEmpty(binding?.PageNotFoundUrl)) { return(null); } string url = binding.PageNotFoundUrl; var defaultCulture = DataLocalizationFacade.DefaultLocalizationCulture; CultureInfo localeFromRequest = C1PageRoute.PageUrlData?.LocalizationScope ?? DefaultPageUrlProvider.GetCultureInfo(httpContext.Request.FilePath, binding, out _) ?? defaultCulture; using (new DataConnection(localeFromRequest)) { url = InternalUrls.TryConvertInternalUrlToPublic(url) ?? url; } if (url.StartsWith("~/") && localeFromRequest.Name != defaultCulture.Name) { using (new DataConnection(defaultCulture)) { url = InternalUrls.TryConvertInternalUrlToPublic(url) ?? url; } } if (url.StartsWith("~/")) { url = UrlUtils.ResolvePublicUrl(url); } return(url); }
internal static string GetCustomPageNotFoundUrl() { var binding = GetBindingForCurrentRequest(); if (binding == null || string.IsNullOrEmpty(binding.PageNotFoundUrl)) { return(null); } string url = binding.PageNotFoundUrl; var defaultCulture = DataLocalizationFacade.DefaultLocalizationCulture; var pageUrlData = C1PageRoute.PageUrlData; CultureInfo localeFromRequest = pageUrlData != null ? pageUrlData.LocalizationScope : defaultCulture; using (new DataConnection(localeFromRequest)) { url = InternalUrls.TryConvertInternalUrlToPublic(url) ?? url; } if (url.StartsWith("~/") && localeFromRequest.Name != defaultCulture.Name) { using (new DataConnection(defaultCulture)) { url = InternalUrls.TryConvertInternalUrlToPublic(url) ?? url; } } if (url.StartsWith("~/")) { url = UrlUtils.ResolvePublicUrl(url); } return(url); }