Я использую letsencrypt ssl. Когда я захожу на сайт с domain.com, он перенаправляется наhttps://domain.comно я хочуhttps://www.domain.com!
Я добавил www в качестве псевдонима для domain.com в панели DNS для доступа к сайту с www. Но теперь я получаю двойное перенаправление.
Первое перенаправление: domain.com на https:// domain.com, Второе перенаправление: https:// domain.com на https:// www.domain.com
Я хочу добиться этого в одном 301 редиректе. Уже пробовал несколько решений, приведенных в SF. Но это не сработало. У кого-нибудь есть идея?
решение1
Если у вас есть доступ к конфигурации nginx и ваш сертификат letsencrypt включает как domain.com, так и www.domain.com, то должно сработать что-то вроде этого:
server {
listen 80;
server_name www.domain.com;
return 301 https://www.domain.com$request_uri;
}
server {
listen 80;
listen 443 ssl;
server_name domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
return 301 https://www.domain.com$request_uri;
}
server {
listen 443 ssl;
server_name www.domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
# the rest of your config
}
Я считаю, что SSL-сертификат должен включать оба домена, поскольку в случае запросов наhttps://domain.comSSL-подтверждение для domain.com происходит до срабатывания перенаправления 301.
Полагаю, вы также могли бы иметь отдельные сертификаты для каждого домена и соответствующим образом настроить пути сертификатов.