diff --git a/DNN Platform/Library/Entities/Portals/PortalAliasExtensions.cs b/DNN Platform/Library/Entities/Portals/PortalAliasExtensions.cs index c578ffe6961..4b6ee7a0d93 100644 --- a/DNN Platform/Library/Entities/Portals/PortalAliasExtensions.cs +++ b/DNN Platform/Library/Entities/Portals/PortalAliasExtensions.cs @@ -95,10 +95,6 @@ public static PortalAliasInfo GetAliasByPortalIdAndSettings(this IEnumerable a.PortalID == portalId) - .OrderByDescending(a => a.IsPrimary) - .FirstOrDefault(); - //First check if our current alias is already a perfect match. PortalAliasInfo foundAlias = null; if (result != null && !string.IsNullOrEmpty(result.HttpAlias)) @@ -107,7 +103,6 @@ public static PortalAliasInfo GetAliasByPortalIdAndSettings(this IEnumerable a.BrowserType == browserType && (String.Compare(a.CultureCode, cultureCode, StringComparison.OrdinalIgnoreCase) == 0) - && a.IsPrimary && a.PortalID == portalId && a.HTTPAlias == result.HttpAlias); if (foundAlias == null) //let us try again using Startswith() to find matching Hosts @@ -115,7 +110,6 @@ public static PortalAliasInfo GetAliasByPortalIdAndSettings(this IEnumerable a.BrowserType == browserType && (String.Compare(a.CultureCode, cultureCode, StringComparison.OrdinalIgnoreCase) == 0) - && a.IsPrimary && a.PortalID == portalId && a.HTTPAlias.StartsWith(result.HttpAlias.Split('/')[0])); } @@ -164,10 +158,15 @@ public static PortalAliasInfo GetAliasByPortalIdAndSettings(this IEnumerable a.PortalID == portalId) + .OrderByDescending(a => a.IsPrimary) + .FirstOrDefault(); + foundAlias = defaultAlias; } - //if we didn't find a specific match, return the default, which is the closest match return foundAlias; } diff --git a/DNN Platform/Library/Entities/Urls/AdvancedUrlRewriter.cs b/DNN Platform/Library/Entities/Urls/AdvancedUrlRewriter.cs index 6ab7f340d51..46c4748307d 100644 --- a/DNN Platform/Library/Entities/Urls/AdvancedUrlRewriter.cs +++ b/DNN Platform/Library/Entities/Urls/AdvancedUrlRewriter.cs @@ -1700,7 +1700,9 @@ protected bool IsPortalAliasIncorrect(HttpContext context, //var cpa = portalAliases.GetAliasByPortalIdAndSettings(result); string url = requestUri.ToString(); RewriteController.CheckLanguageMatch(ref url, result); - var cpa = portalAliases.GetAliasByPortalIdAndSettings(result.PortalId, result, result.CultureCode, result.BrowserType); + var cpa = portalAliases + .Where(a => a.IsPrimary || result.PortalAliasMapping != PortalSettings.PortalAliasMapping.Redirect) + .GetAliasByPortalIdAndSettings(result.PortalId, result, result.CultureCode, result.BrowserType); if (cpa != null) {