Idioma:
blog do oalexandrino
terça-feira, 7 de setembro de 2010

Blog » ASP.NET SEO Url com o componente UrlRewritingNet


Data de publicação: sexta-feira, 5 de dezembro de 2008

Dando procedência ao post SEO Url em ASP.NET (como definir Url amigáveis para seu site), irei descrever como mais detalhes como configurar o componente UrlRewritingNet para uma aplicação ASP.NET.

Usarei um exemplo prático do meu próprio blog para ilustrar isso.

Bem, irei descrever passo-a-passo, e o primeiro passo que temos que fazer é a criação de uma aplicação ASP.NET.

Com o Visual Studio iniciado, siga a seguinte sequência abaixo:

Visual Studio -> File -> New -> WebSite -> ASP.NET Web Site

Assim você configura uma nova aplicação ASP.NET como mostra a figura abaixo.

Criando uma Aplicação ASP.NET

Criando uma Aplicação ASP.NET

Uma vez criada a aplicação, agora você precisa fazer é adicionar uma referência para a DLL do UrlRewritingNet.

Para tanto, você precisa criar a pasta ASP.NET chamada "BIN" e depois localizar a DLL onde você efetuou o download e adiconá-la como referência.

As três imagens abaixo mostram esses procedimentos.

Criando a pasta bin...

Criando Pasta Bin

Criando Pasta Bin

Adicionando a referência...

Adicionando Referência a DLL

Adicionando Referência a DLL

Localizando nosso componente...

Adicionando Referência a DLL - Imagem 2

Adicionando Referência a DLL - Imagem 2

Depois que você clica em "OK" a DLL já está disponível e pronta para ser utilizada pela aplicação. Agora o precisamos definir são as configurações específicas para nossa aplicação em relação a esse componente.

Numa aplicação ASP.NET esses itens de configuração são normalmente definidos no arquivo de configuração chamado "web.config".

As duas imagens abaixo mostram como adicionar esse arquivo de maneira rápida.

Nessa primeira imagem abrimos a janela com as opções de itens que podem ser adicionados a aplicação.

Adicionando web.config

Adicionando web.config

Agora, dentre os vários itens disponíveis, selecione o arquivo como mostra a figura abaixo.

Adicionando web.config - Imagem 2

Adicionando web.config - Imagem 2

Agora precisaremos configurar nosso componente em dois pontos do arquivo web.config.

O que iremos fazer é informar a nossa a aplicação o modo que ela deve proceder na requisição HTTP de forma que seja possível a interpretação da regra de rewrite que nós estamos criando.

O componente funciona como um "httpModule" e nos dois trechos de código que iremos definir, informaremos como esse "httpModule" deve ser processado.

Para maiores informações sobre esse tipo de componente, leia a documentação do ASP.NET. Uma informação inicial pode ser vista nesse post How To Create an ASP.NET HTTP Module Using Visual C# .NET.

Voltando ao nosso objetivo temos o código abaixo que é o primeiro trecho. Ele deve ser colocado logo abaixo da tag "configuration" do nosso arquivo web.config.

Arquivo web.config - configuração

Arquivo web.config - configuração

Repare a tag "rewrites".

Dentro dessa tag defineremos nossas regras de rewrite para nossa aplicação.

Aqui não tem receita de bolo, pois a forma de definição depende da maneira que você queira tratar e/ou processar sua URL. Ou seja, depende da sua regra de negócio.

Neste exemplo como já disse mais acima, irei mostrar como defini a criação da página que você ler agora: a minha página de leitura de blog.

Na imagem ainda não temos nada, ou seja, não defini ainda quais regras seguiremos, irei informar mais adiante.

A imagem abaixo, mostra o segundo trecho de código que devemos adicionar.

É nesse ponto que informaremos a aplicação que ele deve processar, a cada requisição, os httpModules em questão. Em nosso caso, temos apenas um, o "UrlRewritingNet"

Configurando web.config - Imagem 2

Configurando web.config - Imagem 2

Bem, o funcionamento do módulo é o seguinte:

Primeiro, você define sua lógica de negócio e cria sua URL e a idéia é que a URL seja amigável, ou seja, ela será utilizada por mecanismos de busca para indexação do seu site.

Depois que você define sua lógica, você precisa passar parâmetros informando a sua aplicação onde e como, de fato, as informações serão mostradas.

Se observar na URL, perceba que antes da URL amigável eu informo parâmetros que dirão ao código de programação como ele deve recuperar o conteúdo da página.

Normalmente passa-se o ID do registro de banco de dados e/ou outras configurações pertinentes.

Vamos mostrar nos códigos abaixo as variáveis HTTP GET que contém as informações necessárias para o meu blog.

O evento Page_Load chama um método...

Evento Page_Load

Evento Page_Load

Esse método mostra as variáveis GET e seus respectivos valores...

Exibindo Parameters

Exibindo Parameters

Aqui apenas mostro o WebForm que contém o LABEL. Neste label será definido em sua propriedade Text o output do processamento do método...

Web Form

Web Form

Se você nomeou o WebForm como "Default.aspx" e executá-lo, você não verá nenhum output na página. Se observar o código C#, o que ele faz nada mais é do que exibir CHAVES e VALORES da coleção GET

Façamos o seguinte...digite no browser a seguinte URL:

http://localhost/blog/pt-BR/37/seo-url-com-o-componente-urlrewritingnet.aspx

Evidentemente você não verá nada, dará o erro 404!

Agora o que precisamos fazer é definir é a expressão regular que fará o processamento na requisição HTTP.

Essa expressão ficará dentro da tag "rewrites" que definimos mais acima e que haviámos deixado em branco.

Defina a seguinte configuração entre a tag rewrites.

<add 
	name="ReadingBlogs" 
	virtualUrl="^http\://(.*)/blog/(.*)/([0-9]+)/(.*).aspx" 
	rewriteUrlParameter="ExcludeFromClientQueryString" 
	destinationUrl="~/Default.aspx?Page=blog&CurrentCulture=$2&BlogId=$3&SeoUrl=$4" 
	rewrite="Domain" 
	ignoreCase="true"
/>

Dando procedência ao post SEO Url em ASP.NET (como definir Url amigáveis para seu site), irei descrever como mais detalhes como configurar o componente UrlRewritingNet para uma aplicação ASP.NET.

Usarei um exemplo prático do meu próprio blog para ilustrar isso.

Bem, irei descrever passo-a-passo, e o primeiro passo que temos que fazer é a criação de uma aplicação ASP.NET.

Com o Visual Studio iniciado, siga a seguinte sequência abaixo:

Visual Studio -> File -> New -> WebSite -> ASP.NET Web Site

Assim você configura uma nova aplicação ASP.NET como mostra a figura abaixo.

Criando uma Aplicação ASP.NET

Criando uma Aplicação ASP.NET

Uma vez criada a aplicação, agora você precisa fazer é adicionar uma referência para a DLL do UrlRewritingNet.

Para tanto, você precisa criar a pasta ASP.NET chamada "BIN" e depois localizar a DLL onde você efetuou o download e adiconá-la como referência.

As três imagens abaixo mostram esses procedimentos.

Criando a pasta bin...

Criando Pasta Bin

Criando Pasta Bin

Adicionando a referência...

Adicionando Referência a DLL

Adicionando Referência a DLL

Localizando nosso componente...

Adicionando Referência a DLL - Imagem 2

Adicionando Referência a DLL - Imagem 2

Depois que você clica em "OK" a DLL já está disponível e pronta para ser utilizada pela aplicação. Agora o precisamos definir são as configurações específicas para nossa aplicação em relação a esse componente.

Numa aplicação ASP.NET esses itens de configuração são normalmente definidos no arquivo de configuração chamado "web.config".

As duas imagens abaixo mostram como adicionar esse arquivo de maneira rápida.

Nessa primeira imagem abrimos a janela com as opções de itens que podem ser adicionados a aplicação.

Adicionando web.config

Adicionando web.config

Agora, dentre os vários itens disponíveis, selecione o arquivo como mostra a figura abaixo.

Adicionando web.config - Imagem 2

Adicionando web.config - Imagem 2

Agora precisaremos configurar nosso componente em dois pontos do arquivo web.config.

O que iremos fazer é informar a nossa a aplicação o modo que ela deve proceder na requisição HTTP de forma que seja possível a interpretação da regra de rewrite que nós estamos criando.

O componente funciona como um "httpModule" e nos dois trechos de código que iremos definir, informaremos como esse "httpModule" deve ser processado.

Para maiores informações sobre esse tipo de componente, leia a documentação do ASP.NET. Uma informação inicial pode ser vista nesse post How To Create an ASP.NET HTTP Module Using Visual C# .NET.

Voltando ao nosso objetivo temos o código abaixo que é o primeiro trecho. Ele deve ser colocado logo abaixo da tag "configuration" do nosso arquivo web.config.

Arquivo web.config - configuração

Arquivo web.config - configuração

Repare a tag "rewrites".

Dentro dessa tag defineremos nossas regras de rewrite para nossa aplicação.

Aqui não tem receita de bolo, pois a forma de definição depende da maneira que você queira tratar e/ou processar sua URL. Ou seja, depende da sua regra de negócio.

Neste exemplo como já disse mais acima, irei mostrar como defini a criação da página que você ler agora: a minha página de leitura de blog.

Na imagem ainda não temos nada, ou seja, não defini ainda quais regras seguiremos, irei informar mais adiante.

A imagem abaixo, mostra o segundo trecho de código que devemos adicionar.

É nesse ponto que informaremos a aplicação que ele deve processar, a cada requisição, os httpModules em questão. Em nosso caso, temos apenas um, o "UrlRewritingNet"

Configurando web.config - Imagem 2

Configurando web.config - Imagem 2

Bem, o funcionamento do módulo é o seguinte:

Primeiro, você define sua lógica de negócio e cria sua URL e a idéia é que a URL seja amigável, ou seja, ela será utilizada por mecanismos de busca para indexação do seu site.

Depois que você define sua lógica, você precisa passar parâmetros informando a sua aplicação onde e como, de fato, as informações serão mostradas.

Se observar na URL, perceba que antes da URL amigável eu informo parâmetros que dirão ao código de programação como ele deve recuperar o conteúdo da página.

Normalmente passa-se o ID do registro de banco de dados e/ou outras configurações pertinentes.

Vamos mostrar nos códigos abaixo as variáveis HTTP GET que contém as informações necessárias para o meu blog.

O evento Page_Load chama um método...

Evento Page_Load

Evento Page_Load

Esse método mostra as variáveis GET e seus respectivos valores...

Exibindo Parameters

Exibindo Parameters

Aqui apenas mostro o WebForm que contém o LABEL. Neste label será definido em sua propriedade Text o output do processamento do método...

Web Form

Web Form

Se você nomeou o WebForm como "Default.aspx" e executá-lo, você não verá nenhum output na página. Se observar o código C#, o que ele faz nada mais é do que exibir CHAVES e VALORES da coleção GET

Façamos o seguinte...digite no browser a seguinte URL:

http://localhost/blog/pt-BR/37/seo-url-com-o-componente-urlrewritingnet.aspx

Evidentemente você não verá nada, dará o erro 404!

Agora o que precisamos fazer é definir é a expressão regular que fará o processamento na requisição HTTP.

Essa expressão ficará dentro da tag "rewrites" que definimos mais acima e que haviámos deixado em branco.

Defina a seguinte configuração entre a tag rewrites.

<add 
	name="ReadingBlogs" 
	virtualUrl="^http\://(.*)/blog/(.*)/([0-9]+)/(.*).aspx" 
	rewriteUrlParameter="ExcludeFromClientQueryString" 
	destinationUrl="~/Default.aspx?Page=blog&CurrentCulture=$2&BlogId=$3&SeoUrl=$4" 
	rewrite="Domain" 
	ignoreCase="true"
/>

Se você observar o item destinationUrl entenderá o funcionamento.

Perceba que ele tem algumas variávies.

  1. Page: A página do site, o local que estamos no site;
  2. CurrentCulture: o idioma, servirá para configurar o site de acordo com o idioma;
  3. BlogId: o ID do blog em questão, servirá para localização em Banco de Dados;
  4. SeoUrl: a URL amigável;

No ítem "virtualUrl", você terá a expressão regular que interpreta essa url.

Essas configurações dependerão da lógica do seu site e para maiores esclarecimentos estude as expressões regulares. Elas são genéricas e não tem relação ao componente. Se você já tem experiência, não sentirá dificuldades.

Veja, resumidamente o funcionamento:

  1. O componente interpreta a página de acordo com a regra definida em "virtualUrl";
  2. O componente mapeia a URL e define os valores das variáveis GET e passa para que a página definida em "destinationUrl" ("Default.aspx") a processe.
  3. A página Default.aspx processa a requisição como se fosse uma requisição GET manual;

Depois de configurado o resultado é o seguinte:

Resultado Final

Resultado Final

Downloads:

Descrição Tipo
Criando uma Aplicação ASP.NET Arquivo de imagem
Configurando web.config - Imagem 2 Arquivo de imagem
Arquivo web.config - configuração Arquivo de imagem
Resultado Final Arquivo de imagem
Default Arquivo ASPX (ASP.NET)

Comentar este blog *:


captcha




(Clique apenas uma vez)

* Seu email não será publicado

** Código HTML não é permitido

Comentários

  • Nenhum comentário submetido

Sobre o autor

oalexandrino

Olavo Alexandrino