Apacheのマルチドメインが効いていない原因は、httpd.conf だった件
Apacheのマルチドメインに関してハマった点を書きます。
困ったこと、
「マルチドメイン設定をしたのに、同じページが表示される」
です。
元々、
A:local.yukibata.com/home/
があった状態で、
B:local.test.yukibata.com/home/
を追加してBにアクセスしてみました。
が、なぜがAが表示されるという問題に遭遇しました。
現象を詳しく見てみる
まずは、Aである local.yukibata.com/home/ にアクセス。
すると、ちゃんとアクセスログは
/usr/local/apache2/vhosts/local.yukibata.com/logs/access_log ⇒ 来ている
/usr/local/apache2/vhosts/local.test.yukibata.com/logs/access_log ⇒ 来てない
これはOK
次に、Bである local.test.yukibata.com/home/ にアクセス。
すると
/usr/local/apache2/vhosts/local.yukibata.com/logs/access_log ⇒ 来ている
/usr/local/apache2/vhosts/local.test.yukibata.com/logs/access_log ⇒ 来てない
これはNG
原因は、やっぱり httpd.conf
思い当たる節はほとんどないので、
新鮮な目で httpd.conf を見ていったら、やっぱり原因は httpd.conf だった。
(誤)
ServerName yukibata.com
ServerName test.yukibata.com
(正)
ServerName local.yukibata.com
ServerName local.test.yukibata.com
でした。 local が抜けていました。
Apacheの挙動として、Virtualhost が複数設定されている場合、
振り分けが不明な場合に、先頭の振り分けに従う
というルールがあるようです。
ってことは、
いままで、
local.yukibata.com/home/ にアクセスして、
/usr/local/apache2/vhosts/local.yukibata.com/logs/access_log に来ているからOK
だと思っていた思っていたのは、
実は、全て不明だったから、たまたま先頭の Virtualhost 設定に従っていた
という状態だったんですね。。。
おわり
[ImageFrom]
http://manifoldcf.apache.org/ja_JP/