Top > IT > Web > Redirect
Last-modified: Sun, 15 Sep 2013 23:06:10 JST
Counter:6834 Today:3 Yesterday:2 Online:4
このエントリーをはてなブックマークに追加

リダイレクトの設定をする

About

あるディレクトリやページへのアクセスを異なるページへ移動させる、転送させる(ように設定する)ことを リダイレクト/redirect と言います。ここでは Apache サーバでリダイレクトさせる方法についてまとめておきます。

リダイレクトのパターン

プログラムによるリダイレクト

リダイレクトさせるにはいくつかのパターンがあります。ここでは特に次のようなプログラムからのリダイレクトは扱いません。

  • (サーバサイド)プログラムからのリダイレクト
    • 例えば php などで作られたページを参照してリダイレクトする場合です。
  • (クライアントサイド)プログラムからのリダイレクト
    • 例えばページに埋め込まれた javascript などでリダイレクトする場合です。

DNS によるリダイレクト

他に、DNSレコードの設定によるリダイレクトがあります。DNS はあるドメインとIPアドレスを関連付ける仕組みを持ったサーバです。あるドメインへのアクセスを、ある別のドメインないしIPアドレスへ転送することができます。ドメイン間で行われるリダイレクトの内、最も根本的な解決を試みる方法ですが、DNS変更・追加の反映には多少の時間がかかります。

VirtualHost の設定によるリダイレクト

Apache サーバでは、VirtualHost を利用したリダイレクトを実現することができます。VirtualHost の設定方法についてはここでは割愛します。ここで、/var/www/sample1.net/Sample2 ディレクトリに対するアクセスを www.sample2.org へリダイレクトするには VirtualHost の設定に次のように記述します。

<VirtualHost *:80>
    ServerName www.sample1.net
    DocumentRoot /var/www/sample1.net
    Redirect /Sample2 http://www.sample2.org
    ServerAdmin sample@sample1.net
    ErrorLog /var/www/sample1.net/logs/error_log
    CustomLog /var/www/sample1.net/logs/access_log combined
</VirtualHost>

パラメータ Redirect は、リダイレクト先を指定するためのパラメータです。DocumentRoot パラメータによって www.sample1.net へのアクセスが示すディレクトリを(ルートとして)指定しているため、リダイレクトさせるディレクトリのパスは、DocumentRootに設定されたパスからの相対パスで良いです。後に続いてリダイレクト先のアドレスを指定します。ここでは www.sample2.org です。