Apache2 recupera arquivos de outra pasta quando não encontrado

1

Durante o trabalho de reescrita de um aplicativo, gostaria de manter os arquivos webroot antigos do aplicativo como um substituto, quando os novos arquivos não forem encontrados.

Existem 2 aplicações:

<VirtualHost *:80>
    ServerName legacy.dev
    DocumentRoot /www/legacy/webroot
</VirtualHost>
<VirtualHost *:80>
    ServerName new.dev
    DocumentRoot /www/new/webroot
</VirtualHost>

Como eu poderia configurar o new.dev VirtualHost para recuperar os arquivos presentes no DocumentRoot, mas se o arquivo não for encontrado, recupere os arquivos no legacy.dev DocumentRoot?

    
por user365877 24.11.2014 / 13:46

1 resposta

0

Soa como Qual é o equivalente dos arquivos try_files do Nginx no Apache? faria o que você quer.

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

tenta procurar o arquivo e, se ele não o encontrar, passa para o proxy do apache. Apache: mod-reescreva para procurar imagens em falta em outro diretório mostra um exemplo semelhante de usar o mod_rewrite para fazer algo semelhante sem o proxy. Como você pode ver, ele usa RewriteCond semelhante, mas um RewriteRule diferente, que pode ser mais fácil de trabalhar.

Como você pode notar, a primeira resposta referenciada é tentar invadir o try-files do nginx no apache, então talvez você esteja mais feliz com o nginx diretamente neste caso. Como o try_files funciona? deve lhe dar uma idéia melhor se isso puder ajudá-lo.

    
por 24.11.2014 / 15:14