Несмотря на то, что в Интернете есть много примеров, я пробовал много вещей, в частности, используя операторы if, но до сих пор мне не удалось правильно настроить мой виртуальный хост.
Итак, мой виртуальный хост
a1.example.com
www.a1.example.com должен перенаправлять на https://a1.example.com
a1.example.com должен перенаправлять на https://a1.example.com
Цель состоит в том, чтобы каждый раз перенаправлять его на https без www.
Пока это мой виртуальный хост, я использую certbot
сервер {
имя_сервера a1.example.com www.a1.example.com;
корень /var/www/example/build;
индекс index.html index.htm;
место расположения / {
try_files $uri $uri/ =404;
}
слушать [::]:443 ssl ipv6only=on; # под управлением Certbot
слушать 443 ssl; # под управлением Certbot
ssl_certificate /etc/letsencrypt/live/a1.example.com/fullchain.pem; # под управлением Certbot
ssl_certificate_key /etc/letsencrypt/live/a1.example.com/privkey.pem; # под управлением Certbot
включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
}
сервер {
если ($ хост = a1.example.com) {
вернуть 301 https://$host$request_uri;
}
слушать 80;
слушать [::]:80;
имя_сервера a1.example.com www.a1.example.com;
вернуть 404; # под управлением Certbot
}
Это перенаправляет с http на https, но я не могу сделать перенаправление с www на nonwww
Мои текущие записи DNS
А @ IP
а1 ИП
CNAME www-домен
CNAME www.a1 www.a1.домен