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 ヘッダのこと。