Задать вопрос

Как настроить в nginx перенаправление на без www на всех поддоменах?

Есть домен example.com у него есть пользовательские поддомены *.example.com.
Как написать перенапрвление в конфиге nginx, чтобы адреса www.*.example.com становились *.example.com?

Если с www.example.com на example.com то все просто.

server {
server_name www.example.com;
rewrite ^/(.*)$ example.com/$1;
}

А вот с поддоменами так уже не работает.
server {
    server_name  www.*.example.com;
    rewrite ^/(.*)$ http://*.example.com/$1;
}


В общем ответ оказался таким.

server {
    server_name ~^(www\.)(?<domain>.+)$;
    return 301 $scheme://$domain$request_uri;
}

server {
    listen 80 default_server;
    listen [::]:80;
    server_name ~^(www\.)(?<domain>.+)$;
}
  • Вопрос задан
  • 835 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Skillbox
    Старт в DevOps: системное администрирование для начинающих
    4 месяца
    Далее
  • OTUS
    Инфраструктура высоконагруженных систем
    5 месяцев
    Далее
Решения вопроса 1
@TPbIHTPABA Автор вопроса
server {
    server_name ~^(www\.)(?<domain>.+)$;
    return 301 $scheme://$domain$request_uri;
}

server {
    listen 80 default_server;
    listen [::]:80;
    server_name ~^(www\.)?(?<domain>.+)$;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AlexListen
админ, стаж 14 лет
server {
server_name ~^(?!www\.);
return 301 $scheme://$host$request_uri;
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы