Mapping URLs in ASP.NET
ASP.NET offers several ways of mapping nice public URLs to cryptic internal URLs matching the actual implementation.
The simplest way is to match each public URL to its internal value. You can do this by either creating dummy pages which do the redirecting or by adding them to the
urlMappings section of the
web.config file (brought by .NET Framework 2.0). The latter solution is preferable because of simpler maintenance but both of them have the downside of being completely static (an entry is necessary for each mapped page).
A better solution is to implement an
IHttpModule and do the mapping by calling
HttpContext.RewritePath(). You could also change the requested page by using
Server.Transfer() or maybe even
Response.Redirect() but they have their disadvantages when used for URL mapping.
To avoid having to recompile your
IHttpHandler implementation every time the mapping logic changes or extends you could configure it through a custom section in the
web.config file. Regular expressions are a nice tool for defining such mappings as implemented in DasBlog sources (check
newtelligence.DasBlog.Web.Core.UrlMapperModule). You could even use UrlRewritingNet.UrlRewrite if you don't like reinventing the wheel.