私たちのLANでは、Apacheの名前ベースの仮想ホスティングに使用することを目的として、DNSサーバーにいくつかの「偽の」TLDを設定しました。これをUbuntu 10.04 LAMPサーバー上のマス仮想ホスティング(つまり、VirtualDocumentRoot)と組み合わせたいのですが。
しかし、正しいvhostを選択することはできません!
Apache設定の概要は次のとおりです。
NameVirtualHost 10.10.0.205
<VirtualHost 10.10.0.205>
ServerName *.test
VirtualDocumentRoot /var/www/%-3.0.%-2/test/%1/
CustomLog /var/log/Apache2/access.log vhost_combined
</VirtualHost>
<VirtualHost 10.10.0.205>
ServerName *.dev
VirtualDocumentRoot /var/www/%-3.0.%-2/dev/%1/
CustomLog /var/log/Apache2/access.log vhost_combined
</VirtualHost>
www.domain.com.devのようなホスト名は10.10.0.205に正しく解決されますが、より密接に一致する下部のvhostではなく、常に上部のvhostを選択します。
私は、Apacheが特定のIPの上位の仮想ホストにデフォルト設定する前に、最初にServerNameを照合しようとするという印象を受けました。何が悪いのですか?または、これは不可能であり、TLDごとに別のIPを使用する必要がありますか?
apachectl -S出力(トリミング):
10.10.0.205:* is a NameVirtualHost
default server *.test
port * namevhost *.test
port * namevhost *.dev
ServerAlias
だけではなく、ServerName
を使用します。
ServerName somename.dev
ServerAlias *.dev
これが役立つ場合は、少しMoの答えを完了するだけです。
ServerAliasのワイルドカードは、次のような部分的なドメイン名でも機能します。
ServerName somename.dev
ServerAlias *-mysite.dev
最近私の命を救った^^(admin-somename.dev
、bo-somename.dev
、api-somename.dev
...などのサブアプリごとにサブドメインがあるメインサイト)