
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, RewriteCond
mas 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-files
no 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.