
アプリケーションの書き換え作業中に、新しいファイルが見つからない場合に備えて、古いアプリの Webroot ファイルをフォールバックとして保持したいと思います。
アプリケーションは 2 つあります。
<VirtualHost *:80>
ServerName legacy.dev
DocumentRoot /www/legacy/webroot
</VirtualHost>
<VirtualHost *:80>
ServerName new.dev
DocumentRoot /www/new/webroot
</VirtualHost>
DocumentRoot にあるファイルを取得し、ファイルが見つからない場合は legacy.dev DocumentRoot にあるファイルを取得するように new.dev VirtualHost を設定するにはどうすればよいでしょうか?
答え1
それはNginx の try_files に相当する 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 はどのように機能しますか?それがあなたにとって役立つかどうか、より良いアイデアが得られるはずです。