
Работая над переписыванием приложения, я хотел бы сохранить старые файлы 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?Это должно дать вам лучшее представление, если это вам поможет.