É 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 />
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");
}
Figura 01 – Url Amigável para o detalhe do produto
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