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

Por: Perfil removido em 15/01/2013


Backreferences



Uma coisa importante e que deve ser relembrada é que: sempre que você usar parêntesis para delimitar a regex (Pattern) em uma diretiva RewriteRule ou uma regex (CondPattern) da diretiva RewriteCond, referências internas (backreferences) são criadas automaticamente.

Essas referências funcionam como variáveis de ambiente e podem ser reutilizadas na própria diretiva que irá definir a regra de reescrita, para que possam ser utilizadas como variáveis de ambiente em cadeias do tipo $N e %N.

Isso permite criar substituições e TestString (não abordado completamente neste material). A figura a seguir ilustra o funcionamento deste mecanismo:
Neste exemplo (complexo), uma requisição para /test/1234 será transformada em uma consulta (?query_string) e enviada de volta (flag PT = passthrough) com os valores /admin.foo?page=test&id=1234&host=admin.example.com.

Assim, a porção de uma Substitution pode conter backreferences a partes da URL-PATH combinada com Pattern. Considere:

RewriteRule ^/product/(.*)/view$ /var/web/productdb/$1

A variável $1 será substituída pelo valor do texto que combinar com a expressão dentro dos parêntesis em Pattern. Por exemplo, para a requisição:

http://example.com/product/r14df/view

Será mapeada para o caminho /var/web/productdb/r14df. Observe que se houver mais de um valor na regex entre parêntesis, então eles são distribuídos em variáveis $2, $3 e assim por diante.

Reescrita em Host Virtual

Por padrão, configurações globais (per-server) não são herdadas pelos hosts virtuais definidos por <VirtualHost>. Para ativar o mecanismo de reescrita em um host virtual e também a herança, faça:

<VirtualHost>
   RewriteEngine On
   RewriteOptions Inherit
   ....
</VirtualHost>

Esse artigo é apenas uma introdução ao tema... Na documentação do Apache podemos achar muito mais sobre esse assunto.

Kyetoy

Página anterior    

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

Mozilla Firefox: um guia de instalação para iniciantes

Procurando software para gerenciar armazenamento... Pensou FreeNAS!

Eu!noel é sinônimo do Arch Linux! Por quê?

Como imprimir diretamente na porta de impressão

Um tour pelos players de vídeo para Linux

Leitura recomendada

Monitoramento de MSN com imsniff

Conexão modem Motorola USB G24 no Ubuntu

Utilizando o giFT para baixar e compartilhar arquivos na Internet

Configurando Cable Modem via DHCP no Slackware

Por que eu pago por 10 megas, mas só faço download a 1 mega?

  
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