Expressões Regulares + Apache HTTPd

Diretivas que aceitam Expressões Regulares

Módulo Diretiva Formato Onde
core <Directory> ~ er sv
<DirectoryMatch> er sv
<Files> ~ er svdh
<FilesMatch> er svdh
<Location> ~ er sv
<LocationMatch> er sv
<If> … =~ /er/ svdh
<ElseIf> … =~ /er/ svdh
mod_authz_core Require … =~ /er/ dh
mod_alias AliasMatch er sv
RedirectMatch er svdh
ScriptAliasMatch er sv
mod_headers Header er svdh
RequestHeader er svdh
mod_log_debug LogMessage … =~ /er/ d
mod_log_config CustomLog … =~ /er/ sv
mod_proxy <ProxyMatch> er sv
ProxyPassMatch er svd
ProxyRemoteMatch er sv
mod_rewrite RewriteCond er svdh
RewriteRule er svdh
mod_setenvif BrowserMatch er svdh
BrowserMatchNoCase er svdh
SetEnvIf er svdh
SetEnvIfExpr … =~ /er/ svdh
SetEnvIfNoCase er svdh
mod_substitute Substitute s/// dh
mod_version <IfVersion> ~ er svdh
Legenda: (s)erver, (v)host, (d)irectory, (h)taccess

mod_rewrite

O mod_rewrite é muito complexo. É preciso ler muito sobre ele para entender seu funcionamento e criar suas regras com mais sabedoria e confiança. Invista um tempo para estudar estes documentos, nesta ordem:

  1. http://httpd.apache.org/docs/current/rewrite/intro.html
  2. http://httpd.apache.org/docs/current/mod/mod_rewrite.html
  3. http://httpd.apache.org/docs/current/rewrite/flags.html
  4. http://httpd.apache.org/docs/current/rewrite/remapping.html
  5. http://httpd.apache.org/docs/current/rewrite/avoid.html
  6. http://httpd.apache.org/docs/current/rewrite/tech.html

Os retrovisores são parte importante do mod_rewrite, inclusive há dois tipos de retrovisores: $1 para grupos do RewriteRule e %1 para grupos do RewriteCond:

Fonte: http://httpd.apache.org/docs/current/images/rewrite_backreferences.png

Links

  • Directive Quick Reference Lista completa com todas as diretivas do Apache, com links para sua documentação.

  • How the sections are merged Saiba mais sobre a ordem de execução das diretivas: primeiro todas as <Directory>, depois suas equivalentes regex (<Directory ~ ...> e <DirectoryMatch>) e depois vem na fila Files*, Location* e If.

  • Apache RewriteRule and query string Artigo rápido e bem explicado sobre como lidar com as query strings da URL original ao usar o mod_rewrite.

  • Wiki — mod_rewrite recipes and guides Wiki oficial dos usuários do Apache, com vários artigos pequenos, com dics valiosas. Recomendo a leitura dos artigos desta seção especial sobre o mod_rewrite.

  • Apache mod_rewrite Portal de entrada para a documentação do mod_rewrite, com vários links para outros documentos sobre ele.

— EOF —

Aprenda mais sobre Expressões Regulares