さくらVPSを借りると、初期ドメインが割り当てられる。特に設定をしなければ、独自ドメインを設定した後も初期ドメインでアクセスできる。
しかし、初期ドメインは気に入っているドメインではない!なので、初期ドメインでアクセスがきたら独自ドメインにリダイレクトする。
パッと見は一瞬でアドレスが書き換わって、初期ドメインにアクセスしたつもりが独自に行ってました、というかんじ。
まず、Apacheのバーチャルホストの設定でAllowOverrideがAll(有効)になっているか確認する。なっていなければ追加してサーバ再起動。
<VirtualHost *:80> ServerName blog.peacois.me DocumentRoot /path/to/documentroot/ <Directory /> AllowOverride All </Directory> </VirtualHost>
ドキュメントルートに下記のような.htaccessを置く。
RewriteEngine on RewriteCond %{HTTP_HOST} example\.com [NC] RewriteRule .* http://peacois.me%{REQUEST_URI} [R=301,L]
RewriteEngineをonにして、もしRewiteCondでHTTP_HOSTが大文字小文字を問わず(NC)初期ドメインだったら、RewriteRuleでURLを永続的な移動として(R=301)書き換える。
AllowOverrideがAllになっていないまま.htaccessを追加して、あれー全然効かないな?とハマりました。