diff --git a/src/Umbraco.Core/Routing/UmbracoRequestPaths.cs b/src/Umbraco.Core/Routing/UmbracoRequestPaths.cs index b70970673a..f31b9fca06 100644 --- a/src/Umbraco.Core/Routing/UmbracoRequestPaths.cs +++ b/src/Umbraco.Core/Routing/UmbracoRequestPaths.cs @@ -148,7 +148,10 @@ public class UmbracoRequestPaths /// /// Checks if the current uri is an install request /// - public bool IsInstallerRequest(string absPath) => absPath.InvariantStartsWith(_installPath); + public bool IsInstallerRequest(string absPath) => + absPath.InvariantEquals(_installPath) + || absPath.InvariantStartsWith(_installPath.EnsureEndsWith('/')) + || absPath.InvariantStartsWith(_installPath.EnsureEndsWith('?')); /// /// Rudimentary check to see if it's not a server side request diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UmbracoRequestPathsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UmbracoRequestPathsTests.cs index d4856c2b12..9c0e4cbb16 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UmbracoRequestPathsTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UmbracoRequestPathsTests.cs @@ -102,9 +102,15 @@ public class UmbracoRequestPathsTests [TestCase("http://www.domain.com/install/test/test", true)] [TestCase("http://www.domain.com/Install/test/test.aspx", true)] [TestCase("http://www.domain.com/install/test/test.js", true)] + [TestCase("http://www.domain.com/install?param=value", true)] [TestCase("http://www.domain.com/instal", false)] [TestCase("http://www.domain.com/umbraco", false)] [TestCase("http://www.domain.com/umbraco/umbraco", false)] + [TestCase("http://www.domain.com/installation", false)] + [TestCase("http://www.domain.com/installation/", false)] + [TestCase("http://www.domain.com/installation/test", false)] + [TestCase("http://www.domain.com/installation/test.js", false)] + [TestCase("http://www.domain.com/installation?param=value", false)] public void Is_Installer_Request(string input, bool expected) { var source = new Uri(input);