ProxyPass somente se o arquivo não existir

4

Eu vi este exemplo:

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://app_cluster%{REQUEST_URI} [P,QSA,L]

Eu preciso de uma coisa semelhante que delegará ao mod_proxy (por exemplo, um ProxyPass) quando um arquivo estático não existir. É factível?

    
por kaqqao 02.01.2015 / 11:20

1 resposta

3

Essa configuração com o sinal P é a certa para o que você deseja fazer. O documento sobre o sinalizador P afirma:

Use this flag (P) to achieve a more powerful implementation of the ProxyPass directive

Algumas coisas sobre o exemplo: como mencionado por Andrew em sua resposta, o DOCUMENT_ROOT não é necessário.

O segundo é apenas para prestar atenção onde essas instruções estão localizadas: remover o primeiro "/" do RewriteRule (^ (. *) $) se você colocar isso em um container ou similar ...

E o sinalizador P implica no sinalizador L, por isso não é usado, mas pode torná-lo um pouco mais claro se for deixado. Há também um "/" necessário após os endereços da Web.

Por isso, pode ser algo como:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ http://somewhere/$1 [P,QSA,L]
    
por 03.01.2015 / 01:13