apacheのmod_rewriteでドメインの移行

メリークリスマス! ドメイン移行しました!

blanktar.dip.jp -> blanktar.jp

dipが消えました! どうでもいいね! www.blanktar.jp でも繋がるようになったのが大き・・・くないか。どうでもいいね。

で、現在、blanktar.dip.jp にアクセスすると blanktar.jp に飛ばされるようになっています。 同様に www.blanktar.jp にアクセスしても飛ばされます。

こういうドメインの正規化をやってみよう、というお話。 ドメイン以下の/なんたらの部分についてはURLの正規化をやったときの記事をどうぞ。

前回と同じhttpd.confなり00_default_vhost.confなりに

RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-url.com [NC]
RewriteRule ^(.*)$ http://new-url.com [R=301,L]

のようなことを記述します。 こうすると、old-url.comへの全てのアクセスがnew-url.comに飛ばされるように。

当然だけれど、バーチャルホストの関係でアクセスが来ない場合は全く意味がありません。 古いドメインもしばらく取っておかないとダメだしね。

ちなみに。 RewriteCondというのは次の行に書かれたRewriteRuleを有効にする条件(?)らしいです。 HTTP_HOSTの値が^old-url.comに一致すれば、次のRewriteRuleを有効にしますよ、的な。 ドメイン名だけでなくUAとかリファラとかクッキーとか、ものすごい色々なものに対応してるっぽい。 興味があったら調べてみてください。

参考: ApacheウェブサーバーのRewrite設定で使える正規表現サンプル集 | Web担当者Forum