У нашій локальній мережі я встановив кілька "фальшивих" TLD на сервері DNS, маючи намір використовувати їх для віртуального хостингу на основі імен Apache. Я хотів би поєднати це з масовим віртуальним хостингом (тобто VirtualDocumentRoot) на сервері LAMP Ubuntu 10.04.
Однак я не можу змусити його вибрати правильний 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, а не нижній, який більше відповідає.
У мене склалося враження, що Apache спершу спробує встановити відповідність до ServerName, перш ніж дефолтуватиметься до верхнього vhost для даної IP-адреси. Що я роблю неправильно? Або це неможливо, і я повинен використовувати інший IP для кожного TLD?
Apachectl -S виходи (оброблені):
10.10.0.205:* is a NameVirtualHost
default server *.test
port * namevhost *.test
port * namevhost *.dev