URL Indexável – Reescrever URL de uma forma amigável
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
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.