Módulo Rewrite Apache

Tempo de leitura: 3 minutos

O módulo Apache mod_rewrite é um conjunto de métodos que permite manipular URLs nas requisições feitas ao Servidor. No entanto, a lógica deste pode assustar quem o vê pela primeira vez. Muitos tentam usar o recurso sem entender de fato o que é e para que serve e isso pode causar problemas e por isso uma certa aversão de alguns ao mecanismo.

A documentação oficinal do site da Apache ensina 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 em vários níveis de complexidade.

EXPRESSÕES REGULARES

O módulo mod_rewrite utiliza expressões regulares e você poderá obter mais informações sobre a sintaxe e API de REGEX neste link (http://pcre.org/).

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!

Dúvidas? Deixe seu comentário aqui no post para que eu possa lhe ajudar.

Até mais!

Rodrigo Mourão
Inscreva-se Já: http://youtube.com/TheRMFactory

Fonte: http://www.vivaolinux.com.br/artigo/Apache-22-Introducao-ao-modulo-mod-rewrite?pagina=1