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);