por Cesar Cassiano Schimanco

Criar URLs mais amigáveis, mais informativas, usando o Global.asax (URL Rewriting)

Principais benefícios:
Mascarar uma URL, torna-la mais amigável, legível, informativa.
Melhorar a indexação por buscadores, como Google.
E de certo modo ate evitar SQL Injection.

Uma URL assim:
/exemplo.aspx?id=1,
não me diz nada, agora uma assim:
/exemplos/criar-urls-mais-amigaveis-usando-o-global.asax
já fica bem melhor.

Global.asax

void Application_BeginRequest(Object sender, EventArgs e)
{   
    HttpContext httpContext = HttpContext.Current;
    string sDefaultPath = Context.Request.Path;
	
	//Uma forma bem basica
    switch (sDefaultPath.ToLower())
    {
        case "/home.aspx": //URL do browser
            httpContext.RewritePath("/default.aspx?id=1"); // URL real
            break;
        case "/localizacao.aspx":
            httpContext.RewritePath("/default.aspx?id=2");
            break;
        case "/contato.aspx":
            httpContext.RewritePath("/default.aspx?id=3");
            break;
    } 
	
	/*Uma forma um pouco mais robusta, 
	* por exemplo, se tiver uma pagina unica para produtos,
	* a extrutura da URL ficara assim: 
	* /produtos/id do produto/nome do produto .aspx
	* ex de URL: www.site.com.br/produtos/1/nome-do-produto.aspx */
    
	string[] arrDefaultPath = sDefaultPath.Split('/');
	
	//Verificando se existe pelo menos 2 "/" (/produtos/idDoProduto)
	if (arrDefaultPath.Length > 2)
	{
		//Se depois da primeira "/" for produtos
		if (arrDefaultPath[1] == "produtos")
		{
			httpContext.RewritePath("/produtos.aspx?id=" + arrDefaultPath[2]);
		}
	}
}

 

 Download do exemplo

 

Comentários

Carregando comentários

Postar um novo comentário



Processando...