У меня виртуальная машина Debian 9 с nginx в качестве моего веб-сервера, и в моей конфигурации указано следующее.
server {
listen 80;
server_name www.example.com;
return 301 https://$host$request_uri;
}
Теперь, если я перейду на example.com или www.example.com, он перенаправляется на https://www.example.com.
Однако, если я вписываю следующее в адресную строку или подобное: example.com/site/about
, то он пытается перенаправить на https://example.com/site/about
(без www), и Chrome и Firefox предупреждают меня, что у сайта нет сертификата для эта ссылка.
Я использую CertBot. Конфигурация сервера для него содержит:
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
Как мне заставить example.com/site/about
перенаправить на https://www.example.com/site/about
.
Изначально я считаю, что у меня было условие if и регулярное выражение, но я видел совет на веб-сайте nginx по упрощению перенаправлений https и использую приведенный выше код.