Підстановочні символи ServerName у віртуальних хостах на базі імен Apache?


16

У нашій локальній мережі я встановив кілька "фальшивих" 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

Відповіді:


40

Використовуйте ServerAlias, а не ServerNameпоодинці:

ServerName somename.dev

ServerAlias *.dev


2
Останні версії apache більше не дозволять використовувати підстановку в ServerName, і помилка говорить про те, щоб використовувати ServerAlias ​​замість цього.
Квентін Скусен

Дивовижно. Це було швидко і до речі. Деф врятував мені час. Спасибі.
Art Geigel

4

Якщо це може допомогти, просто заповніть трохи відповіді Мо:

Підстановочні картки в ServerAlias ​​також працюють на часткові доменні імена, такі як

ServerName somename.dev

ServerAlias *-mysite.dev

Це врятувало моє життя в останній час ^^ (основний сайт з піддоменів для кожного суб додатки , такі як admin-somename.dev, bo-somename.dev, api-somename.dev...)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.