Apache2 извлекает файлы из другой папки, если они не найдены

Apache2 извлекает файлы из другой папки, если они не найдены

Работая над переписыванием приложения, я хотел бы сохранить старые файлы webroot приложения в качестве запасного варианта на случай, если новые файлы не будут найдены.

Есть 2 приложения:

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

Как настроить новый VirtualHost.dev для извлечения файлов, присутствующих в DocumentRoot, но если файл не найден, извлечь файлы из устаревшего DocumentRoot.dev?

решение1

Это звучит какКакой эквивалент try_files в Nginx есть в Apache?сделает то, что вы хотите.

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

пытается найти файл и, если не находит, передает его прокси-серверу Apache. Apache: mod-rewrite для поиска отсутствующих изображений в другом каталогепоказывает похожий пример использования mod_rewrite для чего-то похожего без проксирования. Как вы можете видеть, он использует похожее, RewriteCondно довольно отличное RewriteRule, с которым может быть проще работать.

Как вы могли заметить, первый упомянутый ответ — это попытка взломать nginx try-filesв Apache, так что, возможно, в этом случае вам больше понравится использовать nginx напрямую. Как работает try_files?Это должно дать вам лучшее представление, если это вам поможет.

Связанный контент