Итак, у меня есть существующая запись DNS A с подстановочными знаками и настройка виртуального сервера поддомена следующим образом
DocumentRoot /path/to/code
<Directory "/path/to/code">
allow from all
Options +Indexes
</Directory>
ServerName existing.domain.co.uk
ServerAlias *.domain.co.uk
... Теперь я хочу добавить еще один виртуальный сервер, который работает таким же образом, но с суб-субдоменом, чтобы позволить мне получить доступ к ветке кодовой базы из чего-то вроде monkeys.alt.domain.co.uk
DocumentRoot /path/to/altcode
<Directory "/path/to/altcode">
allow from all
Options +Indexes
</Directory>
ServerName alt.domain.co.uk
ServerAlias *.alt.domain.co.uk
В файле зоны DNS я добавил еще одну запись A из * .alt в IP (который оказывается тем же IP, что и запись * A).
Теперь, я думаю, происходит то, что существующий подстановочный знак подбирает monkeys.alt.domain.co.uk
и отправив его на существующий виртуальный сервер, а не на новый.
Мой вопрос: Как мне получить трафик из monkeys.alt.domain.co.uk
перейти на новый виртуальный сервер 'alt'?
Apache работает с виртуальными хостами в том же порядке, в котором он читает их конфигурацию. Итак, если он прочитает первым, ServerAlias *.domain.co.uk
тогда будет соответствовать любой sub или sub.sub.domain. Если Apache умеет читать первым ServerAlias *.alt.domain.co.uk
то будет соответствовать любой поддомен alt.domain.co.uk, но не existing.domain.co.uk
, который будет соответствовать следующему vHost.
Поэтому, если у вас есть оба виртуальных хоста, описанные в одном файле, поместите второй (vHost monkey.alt) перед основным vHost. Если они находятся в разных файлах, переименуйте файл, чтобы сначала был прочитан файл конфигурации vHost обезьяны (например, добавьте 0 в начале).