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

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

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

Como se comunicar com outros usuários da rede

Trabalhando com permutações em ordem lexicográfica crescente

Consegue guardar um segredo?

Emuladores para seu sistema operacional

Leitura recomendada

Amadeus: Ambiente Virtual de Aprendizagem - Instalação e Configuração

Varnish: Uma camada de velocidade

Apache + módulo deflate = economia de banda

QRCODE - Código de barras bidimensional

Configurando Servidor WEB Completo [Apache2 + Postfix/Courier + Bind9 + ISPConfig + Roundcube Webmail]

  
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