ドメインを運用していると、
- http://princo.org/
- http://www.princo.org/
など、それぞれのリクエストに対してまったく同じようにApacheを動作
させたくなるものです。
また、似たようなドメイン名
- http://princo.org/
- http://princo.net/
- http://princo.biz/
を所有しており、どこをリクエストしても同じ内容を表示させたい場合にも
有用です。
よく用いられる手法としては、www.princo.org に対してのリクエストを
主軸として利用し、princo.org に来たリクエストをwww.princo.org
に向け直す redirect の手法があります。
redirectの手法では、エージェントに
対してリクエストをやりなおしてもらうため、通信とログと設定のコストが掛かります。
ServerAliasを使うと、リクエストをやり直してもらわなくとも、
別のホスト名へのリクエストに対して全く同じ内容を提供することができます。
ServerAlias は、グローバルディレクティブまたはVirtualHostディレクティブ内にて、
ServerNameで設定したホスト名とまったく同じ動作をさせる、別のドメインを設定する
ことができます。また、複数のServerAliasを設定できますから、単純に
wwwの有無以外にも、全く別のドメインや、IPアドレスや/etc/hosts等で設定
した任意の名前を運用できます。
グローバルな設定の場合も、VirtualHost内で設定する場合も、使い方は
同じです。
ServerName ディレクティブの近くに設定を記述すると便利でしょう。
...
ServerName www.princo.org
ServerAlias princo.org 192.168.23.130 127.0.0.1 www.princo.net princo.net
...
この例では、www.princo.org のエイリアス(別名)として、
- princo.org
- princo.net
- www.princo.net
- 192.168.23.130
- 127.0.0.1
それぞれへのリクエストに対して同一の動作をするように設定しています。