一般的に、Webサイトの場合、ドメイン以外にwww付きでもアクセスさせる場合が多い。
- example.com
- www.example.com
といった具合だ。
通常その場合、Apacheならば、httpd.confにて、virtualhost設定でServerAlias ディレクティブで設定することで実現できる。
example.comが基本の場合
<virtualhost *:80>
DocumentRoot /path/to/htdocs
ServerName example.co.jp
ServerAlias www.example.com
</virtualhost>
http://httpd.apache.org/docs/2.0/ja/mod/core.html#serveralias
たまにこんな要望があったりすることがある。
example.comドメインだけを見せたくて、www.example.comにアクセスされた場合にも、example.comを表示したい。という要望だ。
通常通り、virtualhost設定をし、そこでリダイレクトの設定をすることも出来るが、virtualhost設定内で済ませることも出来る。
<virtualhost *:80>
DocumentRoot /path/to/htdocs
ServerName example.co.jp
</virtualhost>
<virtualhost *:80>
ServerName www.example.co.jp
RewriteEngine on
RewriteRule ^(.*) http://example.co.jp$1 [R=301]
</virtualhost>
ステータスコードとして301を返すことで、永続的な移転ということを知らせることも出来る。
これの設定をするためにいろいろ試していたが、DocumentRoot設定がなくてもいいんだね。知りませんでした。