Desenvolvimento - ASP. NET

URL Indexável – Reescrever URL de uma forma amigável

O meu objetivo é mostrar a você leitor, como desenvolver um site com uma url mais amigável, facilidade de indexação em site de busca, melhor maneira de o usuário entrar diretamente no site e isso tudo dinamicamente.

por Mauricio Junior



Requisitos:

Ferramenta de Desenvolvimento: Visual Studio.NET 2008 SP 1
Framework: .NET 3.5
Tipo de Aplicativo: Web Site
Nível de Conhecimento: Avançado

Objetivo:

O meu objetivo é mostrar a você leitor, como desenvolver um site com uma url mais amigável, facilidade de indexação em site de busca, melhor maneira de o usuário entrar diretamente no site e isso tudo dinamicamente. Por exemplo: uma url de notícia do meu site www.meusite.com.br/noticia.aspx?id=12 ficar da seguinte maneira; www.meusite.com.br/noticia/12/titulo-da-noticia.aspx

Exemplo:

O exemplo mostrado no texto é real e simples de entender, basta ter um pouco de conhecimento na ferramenta de desenvolvimento e programação. Para você que está começando agora, o desafio para entender e fazer o exemplo. As imagens são reais, tente seguir passo a passo.

Desenvolvimento Efetivo:


Referência: 1.1

O primeiro passo foi criar um projeto na ferramenta Visual Studio.NET 2008 do tipo Web Site. Adicionei um novo item, uma página chamada Noticia.aspx, adicionei também um outro item essencial Global.asax. (Referência 1.2)


Referência: 1.2

O primeiro passo depois de adicionar os itens (clicando com o botão direito em cima do projeto e escolhendo Add New Item...), devo customizar e definir o arquivo Noticia.aspx, depois acrescentarei um novo método dentro do arquivo Global.asax.

Customizando a Página Noticia.aspx

Cliquei duas vezes em cima da página Noticia.aspx que, abriu o arquivo Noticia.aspx.cs, dentro do método Page_Load. Acrescentei duas linhas de código. (Table 1.1)
    protected void Page_Load(object sender, EventArgs e)
    {
        string id = Request["id"].ToString();
        Response.Write(id);
    }

Table 1.1

Note que declarei uma variável chamada id do tipo string. O comando Request["id"].ToString() pega o valor passado via request para a página. O passo seguinte foi escrever a minha variável na tela (Response.Write(id)). Todo esse passo foi apenas para pegar o id passado pela notícia.

Customizando Global.asax

O primeiro passo que fiz junto ao arquivo Global foi criar outro método chamado Application_BeginRequest(Object sender, EventArgs e). (Referência 1.3)


Referência: 1.3

Nota-se que, primeiro de tudo foi, pegar o contexto da aplicação. Depois criei três variáveis do tipo string. Usei o Regex com o código @(\w)/(\d+)/(\S+).aspx que é uma expressão regular. Aqui está o segredo, pois essa expressão regular pega a sua url. O primeiro parâmetro é para palavra sem espaço, o segundo parâmetro para número e o último parâmetro é para palavra alfa numérica.

Ignorei os passos e os casos, pois podem ter urls que não usam esse tipo de expressão. Verifico se existe alguma url com esse formato para poder pegar os próximos dados. O comando incoming redireciona para a página correta passando o id para pegar o dado / chave da notícia.


Referência: 1.4

Executando o projeto, coloquei o /noticia/2/titulo-noticia.aspx, note que automaticamente apareceu o número da notícia, é a chave para buscar no banco de dados e preencher algum objeto de tela como: datagrid, datalist ou mesmo um label.

Dessa maneira, é mais fácil sites de buscar indexarem as urls. Caso coloque outra url como /teste.aspx, não passará pela validação, o mesmo buscará a própria página teste.aspx.

Bom, fico por aqui. Qualquer dúvida, favor entrar em contato. Poderei ajudar.

Mauricio Junior
www.mauriciojunior.org
blog.mauriciojunior.org
Mauricio Junior

Mauricio Junior - Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; . Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A.
Blog:
blog.mauriciojunior.org
Site pessoal: www.mauriciojunior.org