U4-8802 - Create 301 URL tracker management dashboard

Created by Sebastiaan Janssen 03 Aug 2016, 13:05:18 Updated by Nicholas Westby 14 Feb 2017, 01:50:12

Tags: Unscheduled

Relates to: U4-8804

Relates to: U4-8823

Relates to: U4-9525

Relates to: U4-8361

This will list the redirects that have been automatically created by Umbraco and you'll be able to delete them.

Additionally: add a button to turn 301 URL tracking on/off.

@Marc.Goodson has made a start on this already: https://github.com/marcemarc/Umbraco-CMS/commit/d701639da98e67a71ba3ad4c15ffba8253cd803e

1 Attachments


Sebastiaan Janssen 03 Aug 2016, 18:07:42

I've documented the setting to disable the URL tracker (disableRedirectUrlTracking): https://our.umbraco.org/Documentation/Reference/Config/umbracoSettings/#web-routing

Sebastiaan Janssen 03 Aug 2016, 18:07:59

PR: https://github.com/umbraco/Umbraco-CMS/pull/1410/

Jeroen Breuer 03 Aug 2016, 19:05:03

Is it also possible to add your own redirects in the management dashboard?

Sebastiaan Janssen 03 Aug 2016, 19:20:04

Nope, we don't support that at the moment. If you do need to add your own redirects, we currently recommend you use actual IIS rewrite maps - see U4-8803 Add "Create package" back as a right-click item on the "Created Packages" node

Jeroen Breuer 04 Aug 2016, 07:33:09

Did you reference to the wrong issue?

Currently we already use IIS rewrite maps, but we would like the customer to manage redirects themselves without using a 3rd party tool. Guess for now we could create a custom section which manages the 301 Url table.

Sebastiaan Janssen 04 Aug 2016, 07:39:57

Yup, wrong issue. http://issues.umbraco.org/issue/U4-8361#comment=67-30043

The URL Tracker is specifically not meant to be managed by customers at the moment. It is only meant to track node moves and renames right now.

FYI: We also don't support redirecting /home/about/contactform.php to an Umbraco node. IIS URL Rewrite is much more performant for that and I'd recommend you us that instead or other URL tracking packages.

Jeroen Breuer 04 Aug 2016, 07:49:00

We'll our situation is probably a bit special (most projects I work on are ;-)). We have a lot of custom UrlProviders and ContentFinders. And I already saw this in U4-8361: "There are some scenarios that will not be able to be automatically tracked, such as changes made to an IUrlProvider since that is outside of the control of Umbraco and 100% in control of a developer."

So the URLs are probably not automatically tracked, but the customer can still change node names and such in Umbraco. So the customer would have to add redirects manually for now (or maybe we can do it with some API events). That's why we would like to have customer management of the 301 redirects. Still looking for the best solution here :-).

Sebastiaan Janssen 04 Aug 2016, 08:02:59

Yup I totally understand. :-)

Unfortunately, your situation is a little bit special ;-) And we need to figure out how to handle those scenarios properly over the next few weeks when people start using this for real.

Sebastiaan Janssen 04 Aug 2016, 09:32:21

@madsrasmussen I realize that I put everything in the wrong place here, but this is what I've got so far, would be great if you could all put it in the proper place. A few things to note:

  • For returning results we return page 1 as page 0 from RedirectUrlManagementController.SearchRedirectUrls so I've had to work around that for the paging a little bit introducing both $scope.currentPage and $scope.options.pageNumber
  • For paging, I just ripped off someone else's hard work.. if it's not too difficult to replace then we can change it to use our standard paging component (if it's a lot of work, we can do it for the next release)
  • When you search and hit enter, it tries to rebuild an index
  • I'm sure there's a better way to rename the "Enable URL Tracker" and "Disable URL Tracker" buttons.. I kinda hacked that in right now -- Speaking of that button: when you click it, a config file gets updated and we call $scope.load() - this takes a few seconds while the app pool recycles. It would be better to not see the list of url and not see the disable/enable button because we're reloading everything, can we make it show the "animated blue balls" loading thing?

Jeroen Breuer 04 Aug 2016, 09:38:28

@nul800sebastiaan If you need a test project with custom UrlProviders and ContentFinder you could have a look at https://our.umbraco.org/projects/developer-tools/1-1-multilingual-example/. It's a complete VS solution with SqlCe. Only build the project and it's working.

Sebastiaan Janssen 04 Aug 2016, 13:08:48

@jbreuer If you can think of anything else to test.. I renamed "getting started" to "got started" and all 3 urls with the old name got redirected to the new name:

/getting-started/ --> /got-started/ /nl/getting-started/ --> /nl/got-started/ /fr/getting-started/ --> /fr/got-started/

Jeroen Breuer 04 Aug 2016, 13:16:05

Maybe a node which is a bit deeper. A news items which also has different url segments. See attachment.

Great that getting started already works :-).

Sebastiaan Janssen 04 Aug 2016, 13:23:26

ah yeah, alright, those don't work, they just 404 like normal!

Priority: Normal

Type: Bug

State: Fixed


Difficulty: Normal


Backwards Compatible: True

Fix Submitted:

Affected versions:

Due in version: 7.5.0

Sprint: Sprint 39

Story Points: