Apache名前ベースの仮想ホストのServerNameワイルドカード?


16

私たちのLANでは、Apacheの名前ベースの仮想ホスティングにそれらを使用するつもりで、DNSサーバーにいくつかの「偽の」TLDを設定しました。これを、Ubuntu 10.04 LAMPサーバーでの質量仮想ホスティング(つまりVirtualDocumentRoot)と組み合わせたいと思います。

ただし、適切な仮想ホストを選択することができません!

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に正しく解決されますが、より密接に一致する下部のホストではなく、常に上部の仮想ホストを選択します。

私は、Apacheが最初にServerNameの照合を試みてから、デフォルトで特定のIPの最上位仮想ホストを設定するという印象を受けました。何が間違っていますか?または、これは不可能であり、TLDごとに別のIPを使用する必要がありますか?

apachectl -S出力(トリミング):

10.10.0.205:*          is a NameVirtualHost
    default server *.test
    port * namevhost *.test
    port * namevhost *.dev

回答:


40

単独ServerAliasではなくを使用しますServerName

ServerName somename.dev

ServerAlias *.dev


2
最近のApacheバージョンでは、ServerNameでワイルドカードを使用することもできなくなり、代わりにServerAliasを使用するようにエラーが表示されます。
クエンティンスコウセン

驚くばかり。これは迅速かつ要点でした。Defは時間を節約してくれました。ありがとう。
アートガイゲル

4

これで解決できる場合は、Moの答えを少し記入してください。

ServerAliasのワイルドカードは、次のような部分的なドメイン名でも機能します。

ServerName somename.dev

ServerAlias *-mysite.dev

これは、最近、私の命を救った^^(のような各サブアプリのためのサブドメインとメインのサイトadmin-somename.devbo-somename.devapi-somename.dev...)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.