Apache2 recupera archivos de otra carpeta cuando no los encuentra

Apache2 recupera archivos de otra carpeta cuando no los encuentra

Mientras trabajo en la reescritura de una aplicación, me gustaría conservar los archivos webroot de la aplicación anterior como alternativa, cuando no se encuentren los archivos nuevos.

Hay 2 aplicaciones:

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

¿Cómo podría configurar new.dev VirtualHost para recuperar los archivos presentes en DocumentRoot, pero si no se encuentra el archivo, recuperar los archivos en Legacy.dev DocumentRoot?

Respuesta1

Suena como¿Cuál es el equivalente de Apache de try_files de Nginx?haría lo que quisieras.

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

intenta buscar el archivo y si no lo encuentra lo pasa al proxy apache. Apache: mod-rewrite para buscar imágenes faltantes en otro directoriomuestra un ejemplo similar del uso de mod_rewrite para hacer algo similar sin el proxy. Como puede ver, utiliza uno similar RewriteCondpero bastante diferente RewriteRulecon el que puede ser más fácil trabajar.

Como puede observar, la primera respuesta a la que se hace referencia es intentar piratear nginx try-filesen Apache, por lo que tal vez estaría más feliz con nginx directamente en este caso. ¿Cómo funciona try_files?Debería darte una mejor idea si eso te ayudaría.

información relacionada