Today I looked more carefully at the URLRewriter code than I have in months. I learned something interesting, DNN doesn't really care what filename you use in your URL as long as theURL rewriter is executed and finds a match in the URL.
Let me give a quick example, the download page on Dotnetnuke.com is
http://www.dotnetnuke.com/tabid/125/default.aspx
But, this URL is equally effective:
http://www.dotnetnuke.com/tabid/125/bogus.aspx
Why? Because IIS sees the ASPX extension and processes the request through ASP.NET. ASP.NET first passes the request to the HTTP Module of the URLRewriter. The URLRewriter finds a match on the string "tabid". And the URL Rewriter rewrites the URL sending the request to Default.aspx.
As far as I can tell, the only time the name "Default.aspx" is really important is when you're requesting the Default document from the default directory. The request http://www.dotnetnuke.com/ works becuase the default document in the directory is set to default.aspx and there really exists a default.aspx document in that directory.
Good enough, but what do I want to really know? I want to know if I can get ASP.NET to handle the request without specifying any aspx file. Can I get IIS to send my request to ASP.NET (and to the URL Rewriter) by simply specifying
http://www.dotnetnuke.com/tabid/125/
If I could get IIS to forward this request to the URLRewriter HTTP Module, I believe we could leave off Default.aspx from the requests. Why do I care? Of course this example is a little silly, but if you've added custom rules to SiteUrls.config you can actually make human friendly URLs in DNN (not just Search engine friendly) and leaving off default.aspx is actually a big step towards human friendlieness.
Any suggestions or input is appreciated.