at posts/single.html

TextDrive でサブドメイン (3) - サブドメインと ServerName

http://diary.example.com/ に tDiary を入れてみたけど、はてなブックマークカウンタープラグインがうまく動かない。 自分の URL を http://diary.example.com/ じゃなくて、 http://example.com/ と認識している。

phpinfo を動かして環境変数を調べてみたところ、どうも ServerName が原因みたい。

HTTP_HOST    diary.example.com
SERVER_NAME  example.com

例のごとく、 TextDrive のヘルプを見てみる。 12.7. My subdomain shows or redirects to my main domainにヒントが書いてあった。

Subdomain gets redirected to main domain automatically.

http://subdomain.example.com/subdir にアクセスすると、 http://example.com/sub/ にリダイレクトされるよ、という内容。 Apache が自身のサーバ名を知るときに ServerName を参照しているのが原因だと。 たしかに、 Apache の設定ファイルは以下のようになっている。

ServerName example.com

Webmin を使って UseCanonicalName を無効 (off) にするといいよ、と書かれていたので、手順どおりに「Use hostname supplied by browser (ブラウザから送られたホスト名を使う)」にチェックを入れる。 再度、 phpinfo で環境変数を調べると、以下のようになっていた。

HTTP_HOST    diary.example.com
SERVER_NAME  diary.example.com

これでプラグインも正しく動いたし、一件落着。 ちなみに、「ブラウザから送られたホスト名」とは、 HTTP リクエストの HOST ヘッダのこと。

関連する日記