ServerName wildcard di host virtual berbasis nama Apache?

16

Di LAN kami, saya telah menyiapkan beberapa TLD 'palsu' di server DNS, dengan tujuan menggunakannya untuk hosting virtual berbasis nama Apache. Saya ingin menggabungkan ini dengan hosting massal virtual (mis. VirtualDocumentRoot) pada server Ubuntu 10,04 LAMP.

Namun, saya tidak bisa mendapatkannya untuk memilih vhost yang tepat!

Berikut ini ringkasan konfigurasi 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>

Nama host seperti www.domain.com.dev , diputuskan dengan benar menjadi 10.10.0.205, tetapi selalu memilih vhost teratas, bukan yang bawah, yang cocok lebih dekat.

Saya mendapat kesan bahwa Apache pertama kali akan mencoba untuk mencocokkan ServerName sebelum default ke vhost atas untuk IP yang diberikan. Apa yang saya lakukan salah? Atau ini tidak mungkin dan haruskah saya menggunakan IP lain untuk setiap TLD?

apachectl -S output (dipangkas):

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

Jawaban:

40

Gunakan ServerAlias, bukan ServerNamesendiri:

ServerName somename.dev

ServerAlias *.dev

Mo.
sumber
2
Versi apache terbaru bahkan tidak lagi mengizinkan wildcard di ServerName, dan kesalahannya memberitahu Anda untuk menggunakan ServerAlias ​​sebagai gantinya.
Quentin Skousen
Luar biasa. Ini cepat dan to the point. Def menghemat waktu saya. Terima kasih.
Seni Geigel
4

Jika ini bisa membantu, cukup dengan melengkapi sedikit jawaban Mo:

Wildcard di ServerAlias ​​juga berfungsi pada sebagian nama domain, seperti

ServerName somename.dev

ServerAlias *-mysite.dev

Ini menyelamatkan hidup saya baru-baru ini ^^ (situs utama dengan subdomain untuk masing-masing sub aplikasi seperti admin-somename.dev, bo-somename.dev, api-somename.dev...)

S .l
sumber