Есть такой момент, что следование записей о хостах в конфиге имеет значение, при этом apachectl -S покажет все как ожидается, но реально работать будет не так. Например, первая запись описывает domain.com, а все последующие - его поддомены. Но в первой записи есть
ServerAlias www.domain.com *.domain.com
Показывать apachectl -S будет то, что мы и ожидаем увидеть, а вот работать некорректно. Если же переставим нужные поддомены выше -- заработает, как и ожидалось.
И влечет это еще багу:
Include etc/apache2/Includes/*.conf
У меня каждый сайт в отдельном файле. И теперь если сначала считает основной домен, а потом поддомен - можно задолбаться.
Решение -- использование префиксов для поддоменов, например _sub.domain.com, __sub.sub.domain.com или всем дать номера. Один раз тоже вылезла бага - на всех серверах отрабатывало как надо, а на одном читало непойми как, там пришлось прописать руками все домены в конфиг. Или фикс - в конфиг:
Include etc/apache2/Includes/__*.conf
Include etc/apache2/Includes/_*.conf
Include etc/apache2/Includes/*.conf
(проверить, но должно работать)
Многие скажут, что это не бага, а фича, но на самом деле это бага в полном смысле. Лечится составлением списка всех доменов и выбором с наиболее точным совпадением, как у того же DHCP с масками мак-адресов сделано, от большего совпадения к меньшему.
Комментариев нет:
Отправить комментарий