diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/IWebRoutingSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IWebRoutingSection.cs
index 393387ecfa..f3d42b6904 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/IWebRoutingSection.cs
+++ b/src/Umbraco.Core/Configuration/UmbracoSettings/IWebRoutingSection.cs
@@ -8,6 +8,8 @@
bool DisableAlternativeTemplates { get; }
+ bool DisableFindContentByIdPath { get; }
+
string UrlProviderMode { get; }
}
diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/WebRoutingElement.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/WebRoutingElement.cs
index 82c5a37575..f5b71eb2c7 100644
--- a/src/Umbraco.Core/Configuration/UmbracoSettings/WebRoutingElement.cs
+++ b/src/Umbraco.Core/Configuration/UmbracoSettings/WebRoutingElement.cs
@@ -21,6 +21,11 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
{
get { return (bool) base["disableAlternativeTemplates"]; }
}
+ [ConfigurationProperty("disableFindContentByIdPath", DefaultValue = "false")]
+ public bool DisableFindContentByIdPath
+ {
+ get { return (bool) base["disableFindContentByIdPath"]; }
+ }
[ConfigurationProperty("urlProviderMode", DefaultValue = "AutoLegacy")]
public string UrlProviderMode
diff --git a/src/Umbraco.Web.UI/config/umbracoSettings.Release.config b/src/Umbraco.Web.UI/config/umbracoSettings.Release.config
index 2959b0388b..b371f536e6 100644
--- a/src/Umbraco.Web.UI/config/umbracoSettings.Release.config
+++ b/src/Umbraco.Web.UI/config/umbracoSettings.Release.config
@@ -137,10 +137,14 @@
will make Umbraco render the content on the current page with the template you requested, for example:
http://mysite.com/about-us/?altTemplate=Home and http://mysite.com/about-us/Home would render the
"About Us" page with a template with the alias Home. Setting this setting to true stops that behavior
+ @disableFindContentByIdPath
+ By default you can call any content Id in the url and show the content with that id, for example:
+ http://mysite.com/1092 or http://mysite.com/1092.aspx would render the content with id 1092. Setting
+ this setting to true stops that behavior
-->
+ internalRedirectPreservesTemplate="false" disableAlternativeTemplates="false" disableFindContentByIdPath="false">
diff --git a/src/Umbraco.Web.UI/config/umbracoSettings.config b/src/Umbraco.Web.UI/config/umbracoSettings.config
index e13441b802..f03cc08d9f 100644
--- a/src/Umbraco.Web.UI/config/umbracoSettings.config
+++ b/src/Umbraco.Web.UI/config/umbracoSettings.config
@@ -295,10 +295,14 @@
will make Umbraco render the content on the current page with the template you requested, for example:
http://mysite.com/about-us/?altTemplate=Home and http://mysite.com/about-us/Home would render the
"About Us" page with a template with the alias Home. Setting this setting to true stops that behavior
+ @disableFindContentByIdPath
+ By default you can call any content Id in the url and show the content with that id, for example:
+ http://mysite.com/1092 or http://mysite.com/1092.aspx would render the content with id 1092. Setting
+ this setting to true stops that behavior
-->
-
+
\ No newline at end of file
diff --git a/src/Umbraco.Web/Routing/ContentFinderByIdPath.cs b/src/Umbraco.Web/Routing/ContentFinderByIdPath.cs
index 9bae24c5dd..90da48039c 100644
--- a/src/Umbraco.Web/Routing/ContentFinderByIdPath.cs
+++ b/src/Umbraco.Web/Routing/ContentFinderByIdPath.cs
@@ -2,6 +2,7 @@ using System;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core;
+using Umbraco.Core.Configuration;
namespace Umbraco.Web.Routing
{
@@ -20,6 +21,9 @@ namespace Umbraco.Web.Routing
/// A value indicating whether an Umbraco document was found and assigned.
public bool TryFindContent(PublishedContentRequest docRequest)
{
+ if (UmbracoConfig.For.UmbracoSettings().WebRouting.DisableFindContentByIdPath)
+ return false;
+
IPublishedContent node = null;
var path = docRequest.Uri.GetAbsolutePathDecoded();