Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


UI Steps
sizesmall


Informações
Este artigo é destinado aos clientes que possuem dúvidas sobre o mod_rewrite e suas funcionalidades.

Atualmente, é muito comum o uso de scripts que são executados no servidor para gerenciar conteúdos dinâmicos em páginas web. Isto é muito interessante, entretanto geram problemas. Ex.: URLs muito grandes ou complicadas demais, que podem prejudicar a indexação do site por mecanismos de busca.

Exemplo de uma url complicada, de difícil memorização: http://www.meudominio.com.br/index.php?sessao=artigos&dia=26&mes=12&ano=2014-12-26

Exemplo de url amigável: http://www.meudominio.com.br/artigos/26/12/2014

O que é o mod_rewrite?

Mod_rewrite é um módulo do apache que realiza a reescrita transparente de URLs usando expressões regulares. É semelhante a um redirecionamento, porém o usuário não saberá que a página foi reescrita, já que o endereço na barra de endereços do navegador não muda e nenhum cabeçalho HTTP é enviado.


UI Step

Crie/Edite o arquivo .htaccess no diretório raiz do seu site (DocumentRoot) e acrescente a linha:
RewriteEngine On

#Esta linha habilita o uso do mod_rewrite no seu site.

1º Exemplo:

Bloco de código
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


Entendendo a linha acima:

Bloco de código
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.





UI Step

2º Exemplo:

URL: http://www.meudominio.com.br/artigos/26/12/2014/20

Regra:

Bloco de código
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

Certo. E agora? Qual a diferenca entre o 1º e o 2º exemplo?

A diferença é que ele manipula uma URL "/artigos/" somente se for www.meudominio.br/artigos/..., caso seja www.meudominio.com.br/10/10/2014, ele não irá executar a segunda regra.

As alterações todas juntas para o arquivo .htaccess:

Bloco de código
RewriteEngine on
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
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



UI Step

Para os scripts receberem as variáveis criadas pelo mod_rewrite:

Para o 1º exemplo:

Bloco de código
<?php
echo "Digita via url amigáveis: $dia/$mes/$ano";
?>

Para o 2º exemplo:


Bloco de código
<?php
echo "Digita via url amigáveis:
Sessão: $sessao
Dia: $dia
Mes: $mes
Ano: $ano
Id: $id
";
?>

No mais é isto. A utilização do mod_rewrite é recomendada para as práticas de otimização da engine de busca (SEO) e vem sendo cada vez mais utilizada.

Caso possua quaisquer outras dúvidas, entre em contato com o nosso Suporte Técnico.