I’ve seen a fair number of posts already on SEO Friendly URLs, search engines love them apparently and as humans we love them too – although it could be argued that it is mainly for vanity reasons (go check out the product URLs on Amazon quickly…)
Whatever the argument, we agree that Semantic URLs are a good thing for us mere mortals and the vast majority of sites.
The simplest way of achieving friendly URLs is by using a combination of settings. Firstly set the
LinkManager (from Sitecore 6.6 onwards) to use lowercase urls and remove the aspx extension:
<linkManager defaultProvider="sitecore"> <providers> <add name="sitecore" addAspxExtension="false" encodeNames="true" lowercaseUrls="true" ... /> </providers> </linkManager>
And then set
encodeNameReplacements to replace spaces with dashes:
<encodeNameReplacements> ... <replace mode="on" find=" " replaceWith="-" /> </encodeNameReplacements>
About a year or so ago I was working on a project which involved an upgrade from Sitecore 6.4 to 7.0 (the latest version at the time). The upgrade was fairly incidental, the site was (kind of) “working fine” in production. The main reason for touching the codebase was to fix issues due to a poor implementation that was carried out initially, namely:
- Lack of Page Editor support
- Poor coding not following Sitecore Best Practices
- Sitecore section in Web.config modified directly (which made upgrading more difficult)
- Poorly structured Content Tree
- Difficulty applying a good security model for multi-site, multi-editor environment
…amongst others. It wasn’t all bad, just some common mistakes made by developers struggling with Sitecore during a first implementation.
One issue was the poorly structured content tree. It seems there was struggle with getting a handle on how to structure content whilst trying to use that same structure to create the navigation menu on the site. They had the usual “Include In Navigation Menu” checkboxes but the navigation structure did not actually completely match the content structure.