Редирект на главную страницу с "несуществующих" поддоменов

К сайту привязано несколько доменов.

Есть список допустимых поддоменов - sub1, sub2, sub3.

Необходимо на уровне nginx возвращать 301-ый редирект на главную страницу основного домена (c указанием протокола https), если пользователем запрошена страница с поддоменом не из списка выше, но при этом основной домен явно не прописывать в конфиге.

Примеры:

fdsf.domenmy.ru  301->  https://domenmy.ru
sdfsd.site.ru/page1  301->  https://site.ru
bbskd.domen.ru/page2  301->  https://domen.ru
sub1.mysite.ru/page3 - 200. тут редирект не нужен
mydomen2.ru/page4 - 200. тут редирект не нужен

Ответы (1 шт):

Автор решения: Aleksey Vaganov

Если предполагается, что основной домен может быть только 2-го уровня, то в блок http добавьте маппинг:

map $host $redirect {
    "~^sub[1-3]\." "";
    "~([^.]+\.[^.]+)$" "$1";
    default "";
}

В блок server добавьте условие:

if ($redirect) {
    return 301 https://$redirect;
}

Таким образом я нигде явно не указал основной домен.

→ Ссылка