+3

Manipulando URLs com .htaccess no Apache (Avançado)

criado por Gabriel Galiaso em 23/08/2006 9:10pm
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:

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.

Comentários:

Mostrando 1 - 1 de 1 comentários
Dam disse:
Tá bom sim. Principalmente para quem esta começando a enveredar por esses caminhos.
09/09/2009 8:14pm (~14 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)