Small width layout Medium width layout Maximum width layout Small text Medium text Large text
     Search
Downloads Downloads Directory Directory Forums Forums Forge Forge Blogs Blogs        Marketplace Marketplace Careers Program Careers
Community › Forums Register  |  

AppTheory specializes in solutions based on the DotNetNuke platform and has 2 employees on the DotNetNuke Core Team.
  Ads  
r2i.ntegrated
 


  Sponsors  

Meet Our Sponsors

Red-Gate Software
MaximumASP
SourceGear - Tools for Developers
.: CounterSoft :.
telerik
ExactTarget email software solutions
 


DotNetNuke Forums
 
  Forum  General DotNetN...  Configure It! (...  Human Friendly extensionless URLs using ISAPI rewrite?
Previous Previous
 
Next Next
New Post 7/21/2008 8:20 PM
User is offline Bruce Chapman
116 posts
www.iFinity.com.au
9th Ranked


Re: Human Friendly extensionless URLs using ISAPI rewrite? 

Hi - just to let you know, I'm the author of the Url Master module previously mentioned in this thread.

Adding an ISAPI rewriter to DNN won't solve your problems.   Why not?  Because the vast majority of DNN urls are internally generated by the framework itself, so any rewriting/friendly url solution has to work in with the DNN framework.

You need to think about DNN Friendly Urls as a three legged stool. 

One leg is the rewriting, which is the process of taking a human/search friendly url and internally rewriting it to what the rest of the DNN Framework expects in its internal processing.   This means taking /my-page-name.aspx and rewriting to /default.aspx?tabid=xx, or, in the case of modules with query string paramters, taking /my-page-name/my-important-id/345.aspx and turning it into /default.aspx?tabid=xx&my-important-id=345

The second leg is Friendly Url Generation, which is the process of providing code on the other end of the DNN core Friendly Url API, which can either be called directly through the FriendlyUrlProvider instance, or through the common.globals.navigateUrl() call.  Both end up in the same place if FriendlyUrls are switched on - the installed FriendlyUrlProvider.  On a standard DNN install, this is the core DNN Friendly Url provider.   The Friendly Url Provider takes a request for tabid xx, with the parameters of x and y, and gives you back a Url like http://www.mydomain.com/my-tab-name/x/y.

The third leg is the DNN-specific processing that the Url Rewriting process does, which is to identify, for each request, which portal in the DNN install the request is for.  As DNN can support many portals on the one install, each request coming into the installation needs to be separated and the correct portal information attached - so the framework can display the correct page, authenticate the right user - and everything else.

An external URL rewriting scheme like an ISAPI rewrite module can only perform one of these functions (Url rewriting) - and like any three-legged stool with one leg, it's not going to stand up very well.   Add to that, you'd have to create a very big rule base so that each friendly url could be translated from it's friendly form into the rewritten form.  Most ISAPI Rewriters use a regex set of rules, similar to what the mod-rewrite for Apache uses, and this doesn't work well with a dynamic, database driven CMS like DNN.     So you've really got a three-legged stool with half a leg.   And you can implement most of the rewrite rules in the standard siteUrls.config file, so there's really no need for an external rewriting solution (external to the DNN Code base, I mean)

If you want to support extension-less Urls, you can do this (even on IIS6) by mapping all requests to the asp.net runtime.  Whether you choose to do this (or have the security options to do so) is up to the hosting service you use.  You certainly can use DNN with no extensions - you can see an example at my site http://www.ifinity.com.au/   Of course, it runs the product I distribute (Url Master, DNN SEO Friendly Url Provider and Url Rewriter)  You can download and try out a fee trial of the module to see if it suits your needs.

There are other DNN Friendly Url Provider replacements as well - they may be able to remove the extension from the Url as well. 

It's true that with IIS7 it will be easier to provide extension-less ASP.NET Urls, and I will be tweaking the Url Master product to run in this configuration when IIS7 becomes more widespread.  But you don't have to wait until then - the ability is with us here and now.


Do you need a DotNetNuke Developer? and Free DotNetNuke Downloads
 
Previous Previous
 
Next Next
  Forum  General DotNetN...  Configure It! (...  Human Friendly extensionless URLs using ISAPI rewrite?
 


Forum Policy

These Discussion Forums are dedicated to the discussion of the DotNetNuke Web Application Framework.

For the benefit of the community and to protect the integrity of the project, please observe the following posting guidelines:

1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DotNetNuke.
2. Discussion or promotion of DotNetNuke product releases under a different brand name are strictly prohibited.
3. No Flaming or Trolling.
4. No Profanity, Racism, or Prejudice.
5. Site Moderators have the final word on approving/removing a thread or post or comment.
6. English language posting only, please.

 


Get Smarter Mail, SmarterStats, SmarterTickets
Windows mail server, web log analytics, and customer service management software - Free Editions Available!
www.smartertools.com
DotNetNuke Modules, Skins, Training and Consulting
If you want DotNetNuke done right then look no further. Developed Solutions provides module development, skin design, user and developer training and consulting. Based in Adelaide, Australia, we offer our services worldwide.
www.developedsolutions.com.au
Venexus, Inc.
Need custom a custom DotNetNuke module? From module planning to deployment, including training and support, Venexus developers deliver end-to-end web solutions on time and on budget.
www.venexus.com

DotNetNuke Corporation   Terms Of Use  Privacy Statement
DotNetNuke®, DNN®, and the DotNetNuke logo are trademarks of DotNetNuke Corporation
Hosted by MaximumASP