2012-10-09 46 views
28

Nunca antes configuré un proxy. Estoy usando alojamiento compartido, así que para configurar las directivas Apache, necesito usar .htaccess. ¿Puedo usar .htaccess para hacer algo como a continuación? ¿Alguna limitación?¿Pueden funcionar ProxyPass y ProxyPassReverse en htaccess?

ProxyRequests Off 
ProxyPass /img/ http://internal.example.com/img/ 
ProxyPass /app/ http://internal.example.com/app/ 

ProxyPassReverse/http://internal.example.com/ 

Respuesta

33

You cannot use a ProxyPass in an htaccess file. La documentación dice que sólo es aplicable en el contexto:

Contexto: server config, virtual host, directory

que excluye .htaccess (no se puede tener un bloque <Directory> en .htaccess). Sin embargo, puede puede utilizar un ProxyPassReverse para reescribir internamente el campo Ubicación de las solicitudes de proxy que causan una redirección. Solo necesitará usar el indicador P de mod_rewrite al proxy en lugar de ProxyPass. Así que algo como:

RewriteEngine On 
RewriteRule ^/?img/(.*)$ http://internal.example.com/img/$1 [L,P] 
RewriteRule ^/?app/(.*)$ http://internal.example.com/app/$1 [L,P] 

ProxyPassReverse/http://internal.example.com/ 

Para que quede claro, no se puede utilizar ProxyPassoProxyPassReverse en el archivo .htaccess, pero se puede uso ProxyPassReverse con mod_rewrite normas que utilizan la bandera P.

+0

Brilliant! Eso realmente me ayudó a entenderlo. ¡Gracias! –

+18

No puede usar 'ProxyPassReverse' en htaccess tampoco (http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreverse) –

+0

Esto funciona, pero cuando hago un cambio en una de las páginas internas y recargar Ni siquiera lo veo golpear el servidor interno, incluso después de borrar la caché en el navegador. Esto sugiere que algo está siendo almacenado en caché en el servidor, pero ¿cómo cambiar esto? – Michael

Cuestiones relacionadas