En esta entrada vamos a explicar cómo excluir un determinado subdirectorio o ruta cuando ya hemos configurado un proxy inverso en Apache (módulo mod_proxy) que por defecto incluye esa URL. Un ejemplo para verlo más claro:
[...] ServerName foo.com [...] ProxyPass / http://localhost:4789 ProxyPassReverse / http://localhost:4789 [...]
La configuración especificada en el ejemplo anterior iría normalmente dentro de un virtualhost de Apache, ya sea en httpd.conf
o en otro fichero de configuración mediante include
. Básicamente, indica que toda petición que vaya dirigida al raíz (/) de foo.com será redirigida a http://localhost:4789
.
¿Qué sucede si quiero que esto sea así a excepción de para la URL http://foo.com/bar
? En ese caso, hay que excluir de forma explícita ese path para que no sea redirigido a través del proxy inverso del siguiente modo:
[...] ServerName foo.com [...] ProxyPass /bar/ ! ProxyPass / http://localhost:4789 ProxyPassReverse / http://localhost:4789 [...]
Al especificar la ruta seguida de !
se indica explicitamente que esa URL no será manejada por las directivas de proxy inverso.