3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(Apache)複数ドメインで運用しているサイトを単一ドメインになるようリダイレクト

何やら多忙すぎて1ヶ月以上更新が滞ってしまいました。。。

Webサイトの一部を別ドメインに移したためリダイレクトさせてみたmod_rewrite を使ったリダイレクトを書きました。

今回もそれに関連のある話ですが、あるWebサイトが hoge.jp , www.hoge.jp hoge.com どれでもアクセス可とします。

(DNSサーバの設定で同一サーバを見るようしています。VirtualHostは使っていません。)

これを www.hoge.jp でアクセスするように統一という話が出てきました。

調査すると、.htaccess - Rewriteにどんぴしゃな答えがありました。

Mod-Rewrite のリダイレクトを使って、下記のようにするとこれを実現できます。

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(hoge\.jp)(:80)? [NC,OR]

RewriteCond %{HTTP_HOST} ^(hoge\.com)(:80)? [NC]

RewriteRule ^(.*) http://www.hoge.jp/$1 [R=301,L]

RewriteCond で条件を指定できるようです。

HTTP_HOST 変数にどのドメインでアクセスしてきたかの情報が入っているようですね。

複数条件も指定できるようで、今回はORを指定しています。

ちなみに、mod_rewriteを使うディレクトリでは「Options FollowSymLinks」を指定しないとエラーになるケースがあるので注意しましょう

参考:

mod_rewrite サンプル集/楽

RewriteCond - RewriteRuleの条件を設定

CPIレンタルサーバーでApache mod_rewriteの設定方法|ほっとのブログ

mod_rewriteを使うには「Options FollowSymLinks」が必要 kawama.jp: