iFinity Blogs 

The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Mar 17

Written by:
Monday, March 17, 2008 2:57 PM  RssIcon

 Update : This is an old blog post; the Url Master module is in full release.  Go to the product page here to read about the module and download the trial version

It’s been quite a few months since I started tinkering with Friendly Url providers and trying to get the best result possible.  Though trial and error, requests for features and bug reports from committed users, the current product is reasonably mature, and I’m constantly surprised floating around the internet just how many DNN sites are now running the provider – though from the thousands of downloads I guess it’s not that surprising.

 A while back I decided to fork the code base and create a ‘pro’ version, which would implement some of the more difficult features that people had requested, and provide a nicer interface for installing and configuring the myriad of options that the provider offered.   I quickly got frustrated with the VB codebase I had been working from (which was a fork of the Ventrian provider, itself a fork of the base DotNetNuke provider).  Mainly I was frustrated because I no longer like programming in VB, but also because it became apparent that there are so many permutations of options and possible problems, a more structured testing base was required.

The end result of this was a ground-up rewrite in C# of a totally new Friendly Url Provider and Url Rewriting module for DotNetNuke, which I have called ‘iFinity Url Master’.

 Take Control of your Url’s

 This new module has the following features and benefits: 

Standard DNN install process

Install the module using the standard DNN module install.  Just upload the zip file, click install, and it’s installed.  No manual changes to the web.config  file or need to manually copy binary files to specified locations.

 

GUI-based configuration of settings

The new module gives complete control over the settings using a new GUI interface.  With this, you can configure all of the options with an intuitive interface, complete with context-help

 

Test changes before applying

Like to know what certain settings do before committing the changes?  With the new ‘try before you apply’ interface, you can change all of the settings for generating friendly urls, see how the end result will look, and then apply the changes to the whole site when you are sure the changes are correct.  This gives enormous flexibility to website administrators to test out changes to the Url system while others are still using the website.

 

Use any Url you like for any DNN page

With this module, DNN website administrators can forget the restrictions on page names.  You can define any Url you like for a page, and this will be used throughout the site, even on intra-site generated links, menu systems and module-based links.*

 

Example :  Page Name : Foo & Bar

Old DNN Url :  MySite.com/Fooampbar/tabid/33/default.aspx

Url Master Url : MySite.com/Foo_Bar.aspx , or MySite.com/Foo_And_Bar.aspx – or, MySite.com/Totally_Unrelated_Url_Of_Your_Choosing.aspx

 

Define any ‘old’ Url to redirect to a certain page

Url Master gives you a way to break out of your old menu system.  The problem with pages is that sometimes you like to move them, which creates a new Url, and any page rank and external links to that page prevent most administrators from moving the page.  The Url Master module gives you the ability to define 301 and 302 redirects for any ‘old’ Url, which will forward requests onto the new page location.  For search engines, using a 301 redirect will mean that the search engine will eventually update the index and transfer any page ranking to the new Url.

 

Example : Page Name : My Child Page

Old Dnn Url : MySite.com/MyParentPage/MyChildPage/TabId/44/default.aspx

 

Url Master Url (assuming a removal of the Parent Page)

MySite.com/My_Child_Page.aspx

And

301 redirect for :

MySite.com/MyParentPage/MyChildPage/TabId/44/Default.aspx

MySite.com/default.aspx?tabId=44

MySite.com/MyParentPage/MyChildPage.aspx

… or whatever other Url the page might have been known as.

 

With this function, you can replace a non-DNN site with a DNN site, and not lose any of the page rankings associated with the pages.

 

Integration into ‘Host’ and ‘Admin’ menus.

The Url Master module installs two new pages into your DotNetNuke website.  One is installed into the Host menu, and is used to configure the overall options for Friendly Urls.  The other is installed into the Administrator menu, and gives site administrators full control over what Url’s the site allows.  This is all done with the module installation, no creation of pages or copying of modules required.

 

Full language support

Supports the use of the language modifier in the query string, and shifts the language modifier to the base of the page path, to give good Url separation to different language versions of the same website.

Example:

Old iFinity Friendly Url: Mysite.com/mypage/language/en-ca.aspx

Becomes :

Mysite.com/language/en-ca/MyPage.aspx

Mysite.com/language/fr-ca/MyPage.aspx

 

Support for Diacritic Urls including Umlauts

Site administrators with umlauts in a page name can either elect to keep the umlauts in the Url, or you can use the Url replacement function to define an ascii-version of the word. Either way works just fine, and the DNN encoding and non-support of umlauts is fixed.**

Example:

Page Name : Nűrburgring

Urls:

MySite.com/tracks/Nűrburgring.aspx will work, or change it to MySite.com/tracks/Nurburgring.aspx

- either will work

Exclude certain pages from using Friendly Urls

 

Sometimes, Dnn Module developers don’t use the standard Friendly Url API of the DotNetNuke core.  This means they expect Url’s to be in a certain format, or their modules will not work.  In the past, this meant that the entire site Url’s were dictated by the needs of a single module.  Url Master undoes this by allowing exclusion by page path certain pages which should NOT use a Friendly Url.  The Url returned will be the ‘standard’ DNN Friendly Url version.

 

Freedom of extension for Urls – any extension you like, including having no extension at all.

The .aspx extension is just the default given to ASP.NET pages by Microsoft.  You can use any extension you like, including ones like .page, .content – or even none at all (like the iFinity.com.au site).***

 

Example:
Page Name : Remove the Aspx

Standard DNN Url: MySite.com/AspxIsForTheBirds/tabid/45/default.aspx

UrlMaster Url : MySite.com/RemoveTheAspx/

 

Replace spaces in Urls

You can define any character to replace spaces and special characters in your Page names.  This gives an alternative to the removal of spaces by the standard DNN Friendly Url Provider.

 

Example:

Page Name : My Other Page

Standard DNN Url MySite.com/MyOtherPage/tabId/45/default.aspx

Url Master Url:  MySite.com/My_Other_Page.aspx

 

 

* Only works if the Module author has used the standard DNN interface for generating Urls.  Some third party modules use their own proprietary Url generation schemes, and as such the Friendly Urls may not be generated properly.  However, most problems can be worked around with intelligent redirections and page exclusions.

** Make sure your IIS settings are correct for umlauts in the Urls.  Some browsers may not be able to display Umlauts in the address bar and may encode the address.

*** Using this feature requires the administrator to have access to the IIS configuration for their website.  Removing the extension means all IIS requests are routed through the ASP.NET runtime, which may have some performance applications for some websites.

Here are some screenshots:

Friendly Url Settings Section (Host Settings-> Friendly Url Settings Page)

On this screen you can see all the options for generating Friendly Urls.  You can modify the settings, select a page in the site, then click on 'Show Friendly Url Example' to see how the Url will look.  (this example shows a page called 'foo_bar.aspx' All of the changes are not committed to the web.config file until the 'Apply Changes' button is clicked, but you can test out the results at any time,

Friendly Url Settings

Url Rewriting Section (Host Settings -> Friendly Url Settings Page)

On this screen (which is part of the same screen as the previous image) you can change all the options which relate to rewriting the Urls (in other words, figuring out which Tab the Url is for) and redirecting Urls.   Again, using the 'Test redirection and rewrite'  button, you can type in a Url then check to see whether the Url Rewriter can figure out the correct TabId to send the request to.  It will also output any 301 or 302 status codes encountered as part of processing the mock request.

Again, this allows modification of the changes so that you can see how your site is going to be affected before applying the change - I like to call this 'try before you apply'.

In this example, a Url of foo_amp_bar.aspx has been found and redirected to tabId 109, and a 301 redirect has been issued as well, to a new Url of foo_bar.aspx.

Page Urls (Admin Settings -> Page Urls )

This section is part of the administrators menu, and as such is available to administrators of any site in the DNN installation (not just the host).  It allows a site administrator to define any Url to be mapped to a page on the site, and also to define any Url to be 301 or 302 redirected to that page. 

In this example, we see that the 'Foo & Bar' page has been set up to use 'foo_bar' as the standard Url, and foo_amp_bar, foobar or any other 'standard' DNN url should be issued with a 301 redirect to the chosen foo_Bar.aspx.  (this ties in with the previous examples)

Page Urls

What next?

The Url Master module will be in Beta testing until I feel it is ready for release.  This will be a premium module (in other words, you’ll have to pay for it!).  Pricing is yet to be finalised, but it will be on a per-domain licensing basis.    I will continue to support the Free Friendly Provider into the future, as I will develop it alongside this module.

If you’d like to try out a Beta version, please contact me via PM if you are a forum member, or contact me via the ‘Talk to Us’ page.  You can leave your email address in the comment of this blog if you like, but be warned spammers are out and about and continually trying to script-kiddie this site and put ‘world of warcraft’ links in the comments – so the spammers probably mining the comments for email addresses as well. 

For Beta testers, I’m really looking for people who are confident in configuring Urls and understand exactly what they are doing.  You won’t be able to use the Beta on a ‘live’ site because it will have ‘Trial Version’ links in it – this is because I don’t want it trusted until it has proven itself.  I'll probably give out discounts to Beta testers who decide they want to buy the final version.  Other people who aren't that technical but just want to be an early adopter should just continue to badger me for a release and wait until the bugs are cleared!

Tags:
Categories:
Location: Blogs Parent Separator Crafty Code

18 comment(s) so far...


Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Hello Bruce, your product will rock i guess, if you are interested i can test beta versus Turkish characters in urls > i am encoding my email address to avoid spammers :D

l-a-b-f-x-d-x......a-t - nospam dot. g-m-a-i-l.... c-o-m*

By Ismet Dumlupinar on   Monday, March 17, 2008 7:08 PM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Ismet
I'll send you a copy when I get the final beta package ready. I'm just testing it on 4.8.1 and writing some instructions.
-Bruce

By host on   Monday, March 17, 2008 7:09 PM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Would you please comment upon how your new app cooperates with the Ventrian "News Articles" module, which contains its own URL rewriting code, for SEO purposes??

Thank you, Tom

By tlyczko on   Tuesday, March 18, 2008 7:54 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

I sent an email before I realized you haven't released, you're simply asking people to contact you.
My apologies for jumping the gun, I hope you have it ready SOON!!
A lot of people need this.
Thank you, Tom

By tlyczko on   Tuesday, March 18, 2008 7:54 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Will this new module solve the problems with DNN's broken login pages code??

I created a new custom login page because the default login page kept getting the wrong skin.

From any page but the custom login page, links to my custom terms and privacy pages work, but not from my custom signin page.

Link to my custom signin page is http://dnntesting/signin.aspx

Example of what I get for links on the signin page: http://dnntesting/Signin/privacy/terms.aspx

Correct link from any page should be: http://dnntesting/terms.aspx, which is the link used in my site skin's footer, and which works correctly from all pages except the signin page.

Will this module fix this??

Basically, I think you told me before that your friendly URLs module doesn't play well with DNN's login module or something, perhaps you could include a workaround in two parts: 1) for now, what to do with the 'broken' login; 2) what to do if the login stuff is not 'broken,' aka fixed someday in the future.

This blog entry is tooooooooooooooo titillating!! :) :)

Thank you, Tom

By Tom on   Tuesday, March 18, 2008 7:55 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Sounds cool! A problem I encountered (a time ago) with the Ventrian Friendly Url module was, that it had problems when using advanced search strings like "+Term1 +Term2". Does your module understands that?

By Rainer on   Wednesday, March 19, 2008 9:16 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

@rainer

I'm afraid you'll have to be a little more specific on that one. Advanced search strings where?? Using the DNN search feature??

By host on   Wednesday, March 19, 2008 9:17 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Great !!! What about the Ventrian URLs ???

DV

By Déclic Vidéo FX on   Friday, March 21, 2008 7:26 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Bruce, I'd be down to do some real beta testing on the module when it's ready for external websites. Let me know, I'm easy to reach www.chrishammond.com

By Chris Hammond on   Friday, March 21, 2008 7:26 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

@DV

Err - which Ventrian Urls, and what about them??

By host on   Friday, March 21, 2008 7:27 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Ventrian URLs -- the odd search URLs mentioned above AND how the News Articles module makes URLs, mentioned in the forum for this module.

Thank you, Tom

By tom on   Saturday, March 22, 2008 7:32 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Bruce,

I'm highly interested in beta testing ... still have openings? I have one installation that is semi private, no clients on it anyway.

Lance dot Long at gmail dot com

By Lance on   Saturday, April 05, 2008 9:34 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

@tom, DV

Yes the module supports the way that the Ventrian News Articles module makes up Urls. I'll be testing it for DNN search integration and making sure it works.

@lance

Sure, I'll send you a copy - see separate email

By host on   Saturday, March 22, 2008 7:33 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Ok, thanks for answering.
I am also ready to test it (but I do not have any dev website, I generally do my testing on my prod website...)
;-) I trust you, and sure that there are not so many big bugs (show stopper).

DV

By Declic Video on   Monday, March 24, 2008 4:58 PM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Hey Bruce, any word on when the new url rewriter will be released to the public? We're dying to give it a spin

Josh
josh@digicon.com.au

By Josh on   Thursday, April 24, 2008 9:12 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

@josh

It's out and about and several minor releases down the track - take a look at the products page or the the Free Downloads page.

I'll edit this post to inform anyone who wanders in off the street.

By bchapman on   Thursday, April 24, 2008 9:20 AM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

Licensing on per domain basis will be the show stopper of this module for sure. We have even drop using Active Forums and some other "premium" DNN modules because of per domain licensing.

By Ahmed Bangouri on   Friday, April 25, 2008 12:02 PM

Re: The long awaited 'pro' version of the iFinity Friendly Url Provider in Beta test

@Ahmed

I am working on a server-level licence for the module. I realise that some people run many DotNetNuke portals per instance and per-domain licensing is restrictive in these cases. I will announce the 'enterprise' style licence with the next major release of the module.

By bchapman on   Friday, April 25, 2008 1:39 PM

Your name:
Gravatar Preview
Your email:
(Optional) Email used only to show Gravatar.
Your website:
Title:
Comment:
Add Comment   Cancel 
Bruce Chapman
Hi, I'm Bruce Chapman, and this is my blog. You'll find lots of information here - my thoughts about business and the internet, technical information, things I'm working on and the odd strange post or two.

 

Share this
Get more!
Subscribe to the Mailing List
Email Address:
First Name:
Last Name:
You will be sent a confirmation upon subscription

 

Follow me on Twitter
Stack Exchange
profile for Bruce Chapman at Stack Overflow, Q&A for professional and enthusiast programmers
Klout Profile