Назад | Перейти на главную страницу

Настройка поддомена с подстановочными знаками в ubuntu 14.04 с помощью a2ensite?

Я использую apache на ubuntu 14.04. Я установил для своего сайта домен с подстановочными знаками, но он не работает так, как мне хотелось бы. я хочу

www.example.com --> /var/www/mysite
example.com --> /var/www/mysite

и все остальное, чтобы пойти

*.example.com --> /var/www/myothersite

НО, прямо сейчас это работает так

example.com --> /var/www/mysite

и

www.example.com --> /var/www/myothersite
*.example.com --> /var/www/myothersite

Я создал виртуальные хосты, создав два файла conf в sites-available /

example.com.conf
catchall.example.com.conf

Вот содержимое example.com.conf

ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/mysite

Вот содержимое catchall.example.com.conf

ServerName catchall.example.com
ServerAlias *.example.com
DocumentRoot /var/www/myothersite

После того, как я создал файлы, я запустил a2ensite для файлов и перезагрузил apache. Есть идеи, как я могу достичь желаемых результатов, все еще используя сайты-доступные и a2ensite?

Я думаю, проблема в том, что Apache разбирает включенные файлы конфигурации в лексикографическом порядке, а catchall.example.com.conf анализируется перед example.com.conf.

В результате www.example.com совпадает с *.example.com , а не явный ServerAlias ​​в файле example.com.conf.

Решение состоит в том, чтобы переименовать catchall.example.com.conf во что-то вроде wildcard.example.com.conf, которое идет позже по алфавиту, а затем example.com.conf.