バーチャルホストのデフォルトサーバーの設定方法と確認方法

apacheの挙動

※バーチャルホストを設定するとapacheでのデフォルトサーバーが「conf.d」の配下の設定ファイルの辞書順の一番先頭のものが設定される。(知らなかったぁ・・)

IPを直打ちされた場合、自分の意図しないバーチャルホストが表示される場合があり、Googleが別サイト扱いし、コピーコンテンツと見なされ、ペナルティの対象になる場合があるので厳重に注意が必要!

apacheのデフォルトサーバーの確認方法

#httpd -S

表示例

*:80 is a NameVirtualHost
default server www.main.000.jp (/etc/httpd/conf.d/01main.conf:1)
port 80 namevhost www.main.000.jp (/etc/httpd/conf.d/01main.conf:1)
port 80 namevhost www.sub.000.jp (/etc/httpd/conf.d/sub.conf:1)

*:443 is a NameVirtualHost
default server www.main.000.jp (/etc/httpd/conf.d/01main.conf:6)
port 443 namevhost www.main.000.jp (/etc/httpd/conf.d/01main.conf:6)
port 443 namevhost www.sub.000.jp (/etc/httpd/conf.d/sub.conf:6)

ドメインと設定ファイルを並べて表示してくれるので非常に分かりやすい。

もし、メインサイトが「main.conf」でサブサイトが「aaasub.conf」だったりすると、辞書順は「aaasub.conf」が先頭になり、デフォルトサーバーが「aaasub.conf」となってしまい、IPアドレス直打ちでアクセスされた場合「www.sub.000.jp」が表示されてしまう。

対応策

ファイル名の辞書順なるのでデフォルトサーバーとして設定するメインサイトの設定ファイル名の頭に「01」等、数字をつけておけば必ず辞書順で一番先頭になるので、後からいくつバーチャルホストを追加しても先頭に数字を付けなければ先頭のファイルが入れ替わる心配がなくなる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)