Entry

.htaccessを使って、ドメイン別に転送先を変える

自分が現在、XREA.COMの有料サービスによってこのサイトを運営している。このXREAサービスには色々な機能があって、その中の一つにサーバのアクセスログ解析がある。これは、Apacheのログを、Analogというソフトで毎日1回(深夜ごろ)解析し、その結果をHTMLファイルで出力してくれるというもの(もちろん、ログその物も取得できる。4日分しか残してくれないけど)。
で、このログ解析結果の一つに、どのファイルが何回アクセスされたか、というものがある(でも10回以上じゃないとカウントしてくれない)。でまぁ、自分はそれを見つつニヤニヤしていたりするわけだ。…すいません、結構楽しみなんです。そして、その結果の所がHTMLファイルの場合、該当ページへのリンクを張ってくれる。ところがこれ、自分のサイトのように独自のドメインを使っていると、アドレスの違いからそのままだと該当ページへ直接飛べないという事態が発生する。つまりそのリンク先は、本来XREAから割り振られたドメインが対象になっている。自分の設定では、XREAドメインのルートは”public_html/”ディレクトリ、melog.infoドメインのルートは”public_html/melog.info/”ディレクトリという設定で、パスの違いがあるため飛べない。
今までこれが不便に感じていて、どうにかできないかと考えていた。そこで、Webサーバのにおいて対象ディレクトリ以下の動作を設定する.htaccessファイルによってこれを制御できないかと考えた。つまりこの場合は、「本来XREAから割り振られたドメインからアクセスした場合、それを独自ドメインのアドレスに転送する」という動作が必要になる。

参考にしたのは以下のページ。
サブドメインに.htaccessのアドレス転送は使えませんか
自分のサイトの場合は、こうなる。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(XREAのドメイン)(:80)?
RewriteRule ^(.*) http://melog.info/$1 [R,L]

これで、XREAのドメインでアクセスしても、melog.infoドメインに飛ぶことになる。これを、”public_html/”ディレクトリに置く。
しかし、ここで一つ問題がある。ログ解析結果のHTMLファイルは、”public_html/log/”ディレクトリに生成されるため、閲覧するためには「http://(XREAのドメイン)/log/(ログファイル)」にアクセスする必要があるわけだけど、もちろんこれも転送されてしまうため、今度はログ解析結果が見られなくなるという事態が起こる。
そのため、”public_html/log/”ディレクトリにある.htaccessファイルに対し、

RewriteEngine off

を書き加える。
まぁ大体そんな感じで、無事目的を達成することができた。…多分。問題が起こったら、またその時考えるということで。

Comments (0 件)

コメントを残す

メールアドレスが公開されることはありません。