Apache2 はファイルが見つからない場合に別のフォルダからファイルを取得します

Apache2 はファイルが見つからない場合に別のフォルダからファイルを取得します

アプリケーションの書き換え作業中に、新しいファイルが見つからない場合に備えて、古いアプリの 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-filesapache にハッキングしようとするものなので、この場合は nginx を直接使用した方がよいかもしれません。 try_files はどのように機能しますか?それがあなたにとって役立つかどうか、より良いアイデアが得られるはずです。

関連情報