При використанні віртуальних хостів на основі імен перша завантажена конфігурація віртуального файлу буде за замовчуванням (Джерело: Apache Wiki ). Наприклад, з конфігурацією, наведеною нижче, інакше не збігаються домени збігаються з domain-one.com
:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName domain-one.com
# Other options and directives ..
</VirtualHost>
<VirtualHost *:80>
ServerName domain-two.com
# Other options and directives ..
</VirtualHost>
Багато серверів не мають монолітного конфігураційного файлу, але мають декілька файлів конфігурації для конкретного хоста, організованих так:
/etc/apache2
|-- sites_available (actual configuration files)
`-- sites_enabled (symlinks to files in sites_available)
У цьому випадку, щоб спочатку завантажити конкретну конфігурацію віртуального хоста, перейменуйте символьне посилання на те, що буде першим при сортуванні, наприклад 00-default
.
Деякі з інших відповідей не зовсім правильні. За словами Apache Wiki, не встановлення ServerName
віртуального хоста є некоректним. Якщо хост без a ServerName
не завантажений спочатку, Apache може навіть не використовувати його, оскільки перший завантажений хост був би за замовчуванням.
Крім того, хоча ServerAlias *
він дійсно відповідає будь-якому, він може також перекрити інші віртуальні хости, визначені пізніше. Можливо, цей підхід спрацює, якщо це завжди останній віртуальний хост, який слід визначити (як у конфігурації, наведеній у питанні), але це означає додати нову директиву та змінити порядок сортування, а не просто змінити порядок, як зазначено вище.