Apache で Web サイト URL をあるサーバーから別のサーバーにリダイレクトする
以前の 2 つの記事 (mod_rewrite を使用した内部リダイレクトの実行とブラウザに基づいたカスタム コンテンツの表示) で約束したように、この投稿では、Apache で 1 つのサーバーから別のサーバーに移動されたリソースへのリダイレクトを実行する方法を説明します。 mod_rewrite モジュール。
会社のイントラネット サイトを再設計しているとします。コンテンツとスタイル (HTML ファイル、JavaScript、CSS) を 1 つのサーバーに保存し、ドキュメントを別のサーバーに保存することにしました。より堅牢なもの。
推奨読書: Apache Web サーバーのパフォーマンスを向上させる 5 つのヒント
ただし、ユーザーが通常の URL でドキュメントにアクセスできるように、この変更をユーザーに透過的にしたいと考えています。
次の例では、assets.pdf
という名前のファイルが 192.168.0.100 の /var/www/html から移動されました (ホスト名: web) を 192.168.0.101 の同じ場所 (ホスト名: web2) に送信します。
ユーザーが 192.168.0.100/assets.pdf
を参照するときにこのファイルにアクセスできるようにするには、192.168.0.100 で Apache の設定ファイルを開き、次の書き換えルール (または次のルールを .htaccess ファイルに追加することもできます)。
RewriteRule "^(/assets\.pdf$)" "http://192.168.0.101$1" [R,L]
$1
は、括弧内の正規表現に一致するものに対するプレースホルダーです。
ここで変更を保存し、Apache を再起動することを忘れないでください。192.168.0.100/assets.pdf を参照して assets.pdf にアクセスしようとすると何が起こるかを見てみましょう。
推奨読書: ウェブサイトに役立つ 25 の「.htaccess」トリック
以下の上記では、192.168.0.100 上の assets.pdf に対して行われたリクエストが、実際には 192.168.0.101 によって処理されたことがわかります。
tail -n 1 /var/log/apache2/access.log
この記事では、別のサーバーに移動されたリソースへのリダイレクトを実行する方法について説明しました。最後に、将来の参考のために mod_rewrite ガイドと Apache リダイレクト ガイドを参照することを強くお勧めします。
いつものように、この記事に関して懸念がある場合は、以下のコメント フォームをご利用ください。お返事おまちしております!