Как настроить в 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>.+)$;
}
  • Вопрос задан
  • 820 просмотров
Решения вопроса 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;
}
Ответ написан
Ваш ответ на вопрос

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

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