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

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

Atualizando do Slackware 9 para 10.0

Software Livre: primeiras impressões

Porque se aventurar no Linux (parte 2) - Instalei, e agora?

Cacti + Plugins (Settings, Monitor, Thold e Weathermap) - Instalação e configuração

Atualização e instalação de programas no FreeBSD

Leitura recomendada

Acesso remoto pela Internet de forma simples usando TeamViewer

Apache 2 para Debian

FreeBSD + FreeRadius + MySQL

CBQ (Controlador de banda) no Conectiva 10

Conectando Ajato com Linux

  
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