Manipulando URLs com .htaccess no Apache (Avançado)
Manipulando quantos dados for preciso via .httaccess
Hoje em dia é muito comum o uso de scripts que rodam no servidor (server-side) para gerar conteúdo dinâmico em páginas web. Isto é muito interessante, mas gera um problema: URLs grandes ou complicadas demais, difíceis de memorizar e sem significado, que podem até mesmo dificultar a indexação do site por mecanismos de busca.
Vamos aprender como criar URLs amigáveis, indexáveis e que resumam, de alguma forma, o recurso que elas descrevem.
Introdução
Galera achoo que todo mundo já viu urls desse modo ou piores:
http://www.seusite.com.br/index.php?sessao=artigos&dia=10&mes=12&ano=2006-08-24
Que tal mudar para:
http://www.seusite.com.br/artigos/10/12/2006
O que é o mod_rewrite?
mod_rewrite é um módulo do apache que realiza a reescrita transparente de URLs usando expressões regulares. É como se fosse um redirecionamento, só que o usuário não fica sabendo que a página foi reescrita, já que o endereço na barra de endereços do browser não muda e nenhum cabeçalho HTTP 3xx é enviado.
Mãos a obra
O primeiro passo é criar um arquivo htaccess no diretório raiz do seu site (DocumentRoot e acrescentar a linha:
Esta linha habilita o uso do mod_rewrite no seu site.
1º Exemplo:
Vamos entender a linha acima:
RewriteRule: define o início de uma regra de reescrita.
([a-z,0-9,A-Z,_-]+): Todos os caracteres (Números e Letras) + _ -
\/: barras.
\/?: uma barra ou vazio.
2º Exemplo:
URL: http://www.seusite.com.br/artigos/10/12/2006/30
Qual a diferenca entre o 1º Exemplo para o 2º Exemplo?
A diferenca e que ele manipula uma URL /artigos/ somente se for www.seusite.com.br/artigos/10..., caso seja www.seusite.com.br/10/10/2006, ele não ira executar a segunda regra.
Hoje em dia é muito comum o uso de scripts que rodam no servidor (server-side) para gerar conteúdo dinâmico em páginas web. Isto é muito interessante, mas gera um problema: URLs grandes ou complicadas demais, difíceis de memorizar e sem significado, que podem até mesmo dificultar a indexação do site por mecanismos de busca.
Vamos aprender como criar URLs amigáveis, indexáveis e que resumam, de alguma forma, o recurso que elas descrevem.
Introdução
Galera achoo que todo mundo já viu urls desse modo ou piores:
http://www.seusite.com.br/index.php?sessao=artigos&dia=10&mes=12&ano=2006-08-24
Que tal mudar para:
http://www.seusite.com.br/artigos/10/12/2006
O que é o mod_rewrite?
mod_rewrite é um módulo do apache que realiza a reescrita transparente de URLs usando expressões regulares. É como se fosse um redirecionamento, só que o usuário não fica sabendo que a página foi reescrita, já que o endereço na barra de endereços do browser não muda e nenhum cabeçalho HTTP 3xx é enviado.
Mãos a obra
O primeiro passo é criar um arquivo htaccess no diretório raiz do seu site (DocumentRoot e acrescentar a linha:
RewriteEngine On
Esta linha habilita o uso do mod_rewrite no seu site.
1º Exemplo:
RewriteRule ^([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/?$ exemplo1.php?dia=$1&mes=$2&ano=$3
Vamos entender a linha acima:
RewriteRule: define o início de uma regra de reescrita.
([a-z,0-9,A-Z,_-]+): Todos os caracteres (Números e Letras) + _ -
\/: barras.
\/?: uma barra ou vazio.
2º Exemplo:
URL: http://www.seusite.com.br/artigos/10/12/2006/30
RewriteRule ^artigos\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/?$ exemplo2.php?sessao=artigos&dia=$1&mes=$2&ano=$3&id=$4
Qual a diferenca entre o 1º Exemplo para o 2º Exemplo?
A diferenca e que ele manipula uma URL /artigos/ somente se for www.seusite.com.br/artigos/10..., caso seja www.seusite.com.br/10/10/2006, ele não ira executar a segunda regra.
Páginas:
1
2