ゆきばた のBlog

備忘録と備忘録。あと備忘録。

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 だった。

 

f:id:yukibata:20170323223819p:plain

 

(誤)

  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/