Apache2 recupera arquivos de outra pasta quando não encontrado

Apache2 recupera arquivos de outra pasta quando não encontrado

Ao trabalhar na reescrita de um aplicativo, gostaria de manter os arquivos webroot do aplicativo antigo como alternativa, 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, recuperar os arquivos no legado.dev DocumentRoot?

Responder1

PareceQual é o equivalente do Apache aos try_files do Nginx?faria o que você quiser.

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

tenta procurar o arquivo e se não encontrar passa para o proxy apache. Apache: mod-rewrite para procurar imagens ausentes em outro diretóriomostra um exemplo semelhante de uso do mod_rewrite para fazer algo semelhante sem proxy. Como você pode ver, ele usa um método semelhante, RewriteCondmas bastante diferente RewriteRule, que pode ser mais fácil de trabalhar.

Como você pode notar, a primeira resposta referenciada está tentando hackear o nginx try-filesno Apache, então talvez você ficasse mais feliz com o nginx diretamente neste caso. Como funciona o try_files?deve lhe dar uma ideia melhor se isso o ajudar.

informação relacionada