From 46c17ffcbf8f8b2a562e3b97496748d4369cb4f4 Mon Sep 17 00:00:00 2001 From: Daniel Aguilera Date: Tue, 10 Dec 2019 08:14:49 +0000 Subject: [PATCH] Fixed Canonical and None mapping redirects (#3396) --- .../Entities/Portals/PortalAliasExtensions.cs | 13 ++++++------- .../Library/Entities/Urls/AdvancedUrlRewriter.cs | 4 +++- 2 files changed, 9 insertions(+), 8 deletions(-) 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 81fa876a81f..780600043d2 100644 --- a/DNN Platform/Library/Entities/Urls/AdvancedUrlRewriter.cs +++ b/DNN Platform/Library/Entities/Urls/AdvancedUrlRewriter.cs @@ -1684,7 +1684,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) {