Apache 2.2 - Introdução ao módulo mod_rewrite

Esse artigo é uma tradução livre e modificada da documentação "Apache mod_rewrite Introduction", que faz parte da documentação da versão 2.2 do Apache.

[ Hits: 49.534 ]

Por: Perfil removido em 15/01/2013


Introdução



Esse artigo é uma tradução livre e modificada da documentação "Apache mod_rewrite Introduction", que faz parte da documentação da versão 2.2 do Apache, disponível em:
O módulo Apache mod_rewrite é um poderoso e sofisticado conjunto de métodos que fornecem várias maneiras para a manipulação de URL's em uma requisição HTTP. Com ele, você pode fazer quase todos os tipos de reescrita de URL que você pode precisar num plano humano e no nível extraterrestre.

No entanto, a lógica deste módulo é (um pouco?) complexa e pode ser intimidante para o principiante. Existe uma tendência de tratar esse assunto e as regras de reescrita como um encanto mágico, e muitos acabam usando o recurso sem entender de fato o que estão fazendo. E, às vezes, o resultado não é o esperado por causa disso!

Essa documentação tenta dar os fundamentos necessários para o entendimento, de modo que, mais pessoas saibam o que está acontecendo quando copiam uma configuração encontrada na Internet ou em um fórum.

A manipulação de URL's pode ser entendida (e feita) em vários níveis de complexidade. Muitas vezes as suas tarefas podem não requerer todo o poder do módulo mod_rewrite.

Assim, para tarefas mais simples, o módulo mod_alias pode resolver seu problema e o mapeamento de URL's pode ser suficiente para você. (http://httpd.apache.org/docs/2.2/urlmapping.html).

Expressões regulares

O módulo mod_rewrite utiliza expressões regulares de acordo com a sintaxe definida pela API de Perl Compatible Regex (http://pcre.org/). Observe que esse documento não é (nem de longe) uma referência completa sobre regex e fornecemos o embasamento mínimo para que você possa iniciar o uso do módulo. Entretanto, esse mínimo é suficiente para ver a magia acontecendo e sobreviver um pouco mais.

Os caracteres especiais de regex, apresentados a seguir, são os menores blocos de construção que você necessita, e são um bom lugar para começar um estudo sobre expressões regulares básicas:

Ponto (.) - Combina com um único caractere. Na expressão regular "v.l" o ponto combina com val, vol, vbl, v2l e qualquer coisa que tenha a sequência "v.l".

Adição (+) - Combina com o padrão anterior UMA ou MAIS vezes. Na expressão regular A+, as combinações possíveis são A, AA, AAA etc.

Asterisco (*) - Combina com o padrão anterior ZERO ou mais vezes. Na expressão regular A*, as combinações possíveis são A, AA, AAA etc ou ainda uma cadeia vazia (zero vezes A).

Interrogação (?) - Permite uma combinação opcional. Por exemplo, "colou?r" irá combinar com color e também com colour.

Circunflexo (^) - Chamado de âncora, esse sinal significa o INÍCIO de uma cadeia de caracteres. Por exemplo, "^ban" irá combinar com cadeias de caracteres que comecem com ban, como banana, banido ou banco.

Cifrão ($) - Essa é outra âncora, esse sinal significa o FIM de uma cadeia de caracteres. Por exemplo, "ana$" irá combinar com Mariana, Juliana e Poliana se essas palavras forem as últimas em uma cadeia de caracteres (antes do enter no fim da linha não poderá haver espaço em branco, pois espaço é um caractere). A cadeia "Quem comeu o queijo foi Mariana$" irá combinar, pois o $ representa o RETORNO DE CARRO (CR) na frase.

Parêntesis ( ) - Os parêntesis funcionam como um aglutinador unindo diversos caracteres em uma única unidade e usando esse valor como uma referência para combinações. Por exemplo, (ab)+ combinará abacate, abacaxi e abóbora.

Colchetes [ ] - Funcionam como um delimitador de grupo ou como uma classe. Cada elemento da classe é testado individualmente. Assim, c[uoa]t irá combinar com cut, cot e cat. Uma range como [a-z] ou [A-Z] pode ser utilizada aqui.

Colchetes Negados [^ ] - Inverte a lógica da classe criando uma regra de exceção. Por exemplo, "c[^a]t" irá combinar com cut, cot e qualquer coisa que não seja cat. Talvez seja útil para um cara que não goste de gatos!

    Próxima página

Páginas do artigo
   1. Introdução
   2. O básico de RewriteRule
   3. O básico de RewriteCond
   4. Backreferences
Outros artigos deste autor

Lançamento do GFP 0.1.4.5 - Gerenciador Financeiro Pessoal

Criando aplicação para detectar informações do sistema em Kylix

Como instalar Postgres 8 no Linux em 10 passos rápidos

Passos essenciais para configurar seu modem 3G no Linux

Acessando partições NTFS no Linux

Leitura recomendada

Rodando aplicações nativas de Windows em Linux pela Web

MSN-Proxy no Debian Lenny

Virtual Host e Virtual Host Mod_Proxy

Conectando computadores Linux e Windows através de "rede local via internet"

Configurando conexão Speedy no Slackware 10

  
Comentários
[1] Comentário enviado por cromado em 15/01/2013 - 15:13h

Muito bom artigo. 10.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts