The iFinity DotNetNuke Friendly Url provider is a free module designed to address some of the needs of website owners who are concentrating on Search Engine Optimisation and providing nice and simple Urls.
First, a short history of DotNetNuke Friendly Urls...
One of the first things many people notice with DNN portals is the default.aspx?tabid=nn format of all the Url's. This is non-intuitive and is really only a programmer's answer to the question of 'how do I serve up dynamic content on a extensible Content Management System'. Early on in the DotNetNuke lifespan the concept of 'FriendlyUrls' was introduced, and the Url format switched from 'default.aspx?tabid=nn' to 'pagename/tabid/nn/default.aspx'. This was a big step forwards in that it introduced the page name into the Url, but more was to be done. Scott McCulloch of the core team undertook to improve the FriendlyUrls even further, and from version 4.6 his changes have been part of the core. The pagenames in DNN are now /pagename.aspx - which is a great result for simplicity, understandability and crucial SEO.
But some websites need even more, and have tricky problems like having modules that require complex query strings. This results in more difficult handling of parameters and less friendly Urls. And then there is the problem of existing websites - if you are running a prior version of DNN and upgrade, all of those hard-won links pointing at your old pages aren't using the new format.
Enter the iFinity Friendly Url Provider
This work was done as an extension to Scott McCulloch's work, but the latest versions actually work in an entirely different way to the standard DNN provider. The background behind how it works and what it does can be found at the blog entry :
Full Feature List
These are the features of the iFinity Friendly Url Provider (note that most features are optional and can be turned on and off):
- Simple Page Name Url's (default.aspx?tabid=37 or /home/tabid/37/default.aspx) becomes home.aspx
- 301 redirects to the new format for all requests issued in the 'old' formats. This ensures that, over time, Search Engines will update their indexes to reflect the new Urls. All the while your old links in external websites will still direct people to the correct content, and ensure that no new link in the 'old' formats appear on the internet.
- 301 redirects for mixed case requests of a Url to the lower case version. So /Home.aspx will be redirected to home.aspx. There is a school of thought on SEO that having Home.aspx and home.aspx split the potential page ranking for that page. This ensures that the problem is eliminated by redirecting all 'incorrect case' requests to the lower case version.
- 301 redirects for requests that are to something other than the 'approved' version of a domain. This features means that all www.domain.com requests can be redirected to domain.com, or vice versa. This allows control over what form of links gets 'out there' on the internet.
- 301 redirects to the site Home page for expired and deleted pages. Instead of throwing back a 404 error, the provider will redirect any requests for expired and deleted pages to the home page, thus ensuring that your page doesn't get removed from search engines if the content is no longer current - it will just get updated to your home page.
- Choice of parameter handling : some modules use query string parameters to specify dynamic content. For example, the DNN blog module has a query string of EntryId/nn. In a normal DNN install, this may come out as default.aspx?tabid=nn&entryId=nn, or perhaps Blog/tabId/nn/EntryId/nn/default.aspx. With this provider, you have a choice of blog/EntryId/nn.aspx OR blog/nn/EntryId.aspx. With the second choice, you get the benefit of the 'page name' always being the same for different content - which might be preferable depending on the module content and querystring.
- Choice of replacing spaces and special characters in page titles with a specified character. The standard DNN page title is used to generate the page name. This means that pages like 'My Product List' will be generated as 'MyProductList'. The general consensus is that Search Engines are unable to parse this as separate words, and that a separator should be included. The FriendlyUrl provider allows you to specify a custom character to replace space and special characters like '&', so that you can get a result like 'My_Product_List' or 'My-Product-List'. The search engines like it, and it makes Urls more understandable to visitors.
- Ability to remove the '.aspx' page extension and replace it with either another extension type, or no extension at all. This advanced feature for people with access to the IIS settings of their web server allows the ability to remove the .aspx extension completely, so that a Url like /blog.aspx becomes just plain old /blog. This is the friendliest Url of them all! Alternatively, the page extension can be changed to something like .page or .content - whatever works best for your site.
The Most Comprehensive Free Url Solution for DotNetNuke
This is a very popular download, and people have routinely reported that it offers more features than many of the commercial versions available on the internet.