Either url rewriting (converting '-' to '' and .ashx to .aspx) or an umbraco not-found handler.
Ideally you would update the hard-coded links since they are very fragile. But until you get that done you'll want the rewriter/not-found handler to take care of things... preferably giving a 'permanent redirect' as well so Google and others can auto-update their links to the new urls.
You're using umbImport to pull in the old site, which has hard-coded hrefs. The hrefs might be valid for the new site or at least a predictable variant (dashes and extension).
So... it shouldn't be a huge amount of work to have a custom dashboard function search for all hrefs in your imported content and try to find the equivalent page inside umbraco. If a match is found, the href would be updated to a {localLink:1234} format. That should take care of most of the links in the site and make the site more maintainable.
You're still left with how to handle requests from 'outside' to the old urls. You could add umbracoUrlAlias properties to all your pages for the old urls but that's not a great long-term solution because you really want people to migrate to the new urls. Again, an umbraco not-found handler that checked for an alterative url form (no dash, with .ashx extension) and sent 301 response and redirect to the new page may be easiest. Or a little url re-write tool that keeps a list of the old urls and associated new urls. Casey Neehouse once wrote such a utility and the code may be available if you email him.
Basically, there are two issues here... updating the hard-coded hrefs in the imported content to use umbraco id's internally, and 301 redirecting links to the new urls.
Both can be handled fairly easily but it'll take some up-front effort/time. Worth it, though, if you ask me.
Doug, your understanding and explanation of the underlying issue is spot on. The way link history and content duplication is handled has a big impact on SEO.
Here are some related things I'm going to need to sort out myself, either by extending Umbraco myself, or using an alternative CMS.
Option to take complete, manual control of a page's URL within the editor. The default is fine most of the time, but why can't I just type it in if I need to?
Save URL history every publish, and allow me to (in a tab) add, edit and delete URLs as necessary.
Any URL from history should perform a 301 redirect to the appropriate page.
When deleting a page, give me the option to attach the deleted URL history to a different page.
FYI, I'm an Umbraco noob, currently attempting to transfer from a commercial CMS to
open source.
You've just described the main feature of UmbImport 1.1, FieldAdapters. FieldAdapters makes it possible to look at a certain datatype, in this case Rich Texteditor and try to convert link and images to content and media links. Same applies when you try to connvert a boolean to bit field, now it fails, because a bit datatype expects 0 or 1, the FieldAdapter will convert a boolean to 0 or 1..
Matching up existing URL’s
Hi,
I’m converting an old CMS site to Umbraco, the old CMS used URL’s like this:
I’ve imported the data and it’s in exactly the same structure however I’m replacing spaces in the node name with ‘-‘ as I prefer it, so:
This is all fine except that the old content has hard coded links, so I need to automatically ensure the old links will link to the new content.
So basically when a user clicks a link for:
They see the Umbraco content at:
Essentially I'm asking the content in Umbraco to be available with '-' and without.
I'm assuming I can get IIS to process the .ashx files as .aspx, this may solve the .ashx to .aspx part, or probably a URL Rewrite rule.
Appreciate any ideas,
Thanks! Rich
Either url rewriting (converting '-' to '' and .ashx to .aspx) or an umbraco not-found handler.
Ideally you would update the hard-coded links since they are very fragile. But until you get that done you'll want the rewriter/not-found handler to take care of things... preferably giving a 'permanent redirect' as well so Google and others can auto-update their links to the new urls.
cheers,
doug.
Let's think a bit further about this...
You're using umbImport to pull in the old site, which has hard-coded hrefs. The hrefs might be valid for the new site or at least a predictable variant (dashes and extension).
So... it shouldn't be a huge amount of work to have a custom dashboard function search for all hrefs in your imported content and try to find the equivalent page inside umbraco. If a match is found, the href would be updated to a {localLink:1234} format. That should take care of most of the links in the site and make the site more maintainable.
You're still left with how to handle requests from 'outside' to the old urls. You could add umbracoUrlAlias properties to all your pages for the old urls but that's not a great long-term solution because you really want people to migrate to the new urls. Again, an umbraco not-found handler that checked for an alterative url form (no dash, with .ashx extension) and sent 301 response and redirect to the new page may be easiest. Or a little url re-write tool that keeps a list of the old urls and associated new urls. Casey Neehouse once wrote such a utility and the code may be available if you email him.
Basically, there are two issues here... updating the hard-coded hrefs in the imported content to use umbraco id's internally, and 301 redirecting links to the new urls.
Both can be handled fairly easily but it'll take some up-front effort/time. Worth it, though, if you ask me.
cheers,
doug.
Doug, your understanding and explanation of the underlying issue is spot on. The way link history and content duplication is handled has a big impact on SEO.
Here are some related things I'm going to need to sort out myself, either by extending Umbraco myself, or using an alternative CMS.
FYI, I'm an Umbraco noob, currently attempting to transfer from a commercial CMS to open source.
@Doug,
You've just described the main feature of UmbImport 1.1, FieldAdapters. FieldAdapters makes it possible to look at a certain datatype, in this case Rich Texteditor and try to convert link and images to content and media links. Same applies when you try to connvert a boolean to bit field, now it fails, because a bit datatype expects 0 or 1, the FieldAdapter will convert a boolean to 0 or 1..
Cheers,
Richard
is working on a reply...