É possível vermos em diversos sites e portais endereços de url que não são tão fáceis de decorar devido ao tamanho e, a muitas vezes, inclusão de números e valores que a deixam complexa, difícil de memorizar e sem sentido (pensando no usuário comum, é claro).

Para resolver este problema existem as urls amigáveis. Com elas conseguimos transformar uma url complexa em uma url fácil de entender e memorizar.

Um exemplo simples: uma página de detalhe de um determinado produto, que teria a seguinte url:

http://www.site.com.br/DetalheProduto.aspx?IdProduto=12345

Transformar-se-ia facilmente em:

http://www.site.com.br/Produto

Temos duas formas de fazer isso (pelo menos as duas mais usadas): 1- abrindo a chave urlMappings no Web.Config e incluindo, manualmente, a url que desejamos deixar amigável, e 2- fazendo isso de forma dinâmica (a que acho melhor e mais correta).

Para a criação do exemplo deste artigo foi usada a documentação da MSDN sobre a classe UrlMapping, que pode ser vista neste link.

Crie uma aplicação Web, criando duas páginas, dando a elas o nome Produtos.aspx e DetalheProduto.aspx. No arquivo de configuração do site, o Web.Config, adicione a chave do urlMappings, dentro da chave system.web, como ilustra a Listagem 01.

Listagem 01 – Chave UrlMappings que conterá a Url amigável



<system.web>
<urlMappings />
Na página Produtos adicione um botão com um texto qualquer, dando a ele o ID btnUrlAmigavel.

Chame seu evento click e, dentro dele, crie a lógica para que apliquemos a url amigável, como é ilustrado na Listagem 02 (lembrando que, como isto é um exemplo, não utilizei tratamento de erros e não me importei em deixar o código direto no botão). Lembre-se de declarar os namespaces System.Web.Configuration e System.Configuration.

Listagem 02 – Criação da Url Amigável



protected void btnUrlAmigavel_Click(object sender, EventArgs e)
        {
            // Cria uma variável do tipo UrlMapping
            UrlMapping urlMap = null;
 
            // Abre o Web.config
            Configuration config =  
               WebConfigurationManager.OpenWebConfiguration("~");

            // Recupera a seção urlMappings, do web.config
            UrlMappingsSection urlMapSection = 
   (UrlMappingsSection)config.GetSection("system.web/urlMappings");
            // Adiciona a URL Amigável a seção, que é salva no Web.Config
            urlMap = new UrlMapping("~/Produto", 
      "~/DetalheProduto.aspx?IdProduto=12345");

            urlMapSection.UrlMappings.Add(urlMap);

            // Grava no web.config
            config.Save();
 
            Response.Redirect("Produto");
        }
Os comentários falam por si só. Viram como é bem simples? Ao clicar no botão, você deverá ver o resultado parecido com o da Figura 01 (note a URL).


Figura 01 – Url Amigável para o detalhe do produto

Ao voltar para a aplicação o Visual Studio irá exibir uma mensagem informando a você que o Web.Config foi alterado, é só clicar em Yes e conferir a alteração na chave urlMapping, ilustrado na Figura 02.


Figura 02 – Url Amigável adicionada ao Web.Config

Assim finalizo o artigo. Muito obrigado a todos!

Um abraço, e até o próximo artigo.

Wellington Balbo de Camargo

wellingtonbalbo@gmail.com