Na versão anterior do ASP.NET, para conseguirmos termos uma espécie de “alias” para determinadas Urls de nossas aplicações. Isso é interessante para que o usuário não tenha que lembrar todo o path até uma determinada seção do web site (incluindo possíveis QueryStrings).
Neste caso, tínhamos que criar um módulo (que implementa a interface IHttpModule) e assim reescreve-las. Um exemplo que costumo citar como referencia, é o que Scott Mitchell escreveu aqui, no MSDN.com.
Agora, no ASP.NET 2.0, temos esta funcionalidade já instrinsica, e podemos utilizá-la, apenas colocando no arquivo Web.Config da aplicação a Url original e o “Alias”. Exemplo:
<urlMappings enabled=”true”>
<add url=”~/Artigos.aspx” mappedUrl=”~/Conteudo.aspx?Controle=Articles”/>
</urlMappings>
O interessante é ver seu funcionamento, ou seja, dentro da classe HttpApplication, temos uma Friend Class chamada UrlMappingsExecutionStep, que por sua vez implementa a interface IExecutionStep, que contém um método chamado Execute. Este método, que também está implementado na classe UrlMappingsExecutionStep, recupera os mapeamentos feitos no arquivo Web.Config e através do método RewritePath da classe HttpContext reescreve a Url.