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.868 ]

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

Gerenciamento centralizado de usuários de rede com GOSA

Tunando sistemas de arquivos para GNU/Linux

O jeito fácil e o jeito difícil de inserir paginação no Open/LibreOffice

OCS Inventory e seus clientes - Instalação e configuração

Instalação e configuração do gdesklets no Slackware 10

Leitura recomendada

Webconferência com OpenMeetings no Debian 5.0

Apache Kafka

Criando seu próprio servidor de DNS dinâmico (nsupdate + bind9)

Implementação de VPN com OpenVPN

Acesso à VPN com etoken USB

  
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