В вашем конфиге запросы на non-www HTTPS куда-то в пустоту проваливаются, их никто не слушает.
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.example.com;
root /var/www/example.com;
location / {
index index.php;
try_files $uri $uri/ /index.php?$args;
}
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_certificate /../fullchain.pem;
ssl_certificate_key /.../privkey.pem;
ssl_dhparam /.../ssl-dhparams.pem;
...
}
console:~# curl -i https://example.com
HTTP/2 301
location: https://www.example.com/
console:~# curl -i example.com
HTTP/2 301
location: https://www.example.com/
console:~# curl -i www.example.com
HTTP/2 301
location: https://www.example.com/
ну я вижу, что вы коммент подредактировали (в первом блоке example.com отстутствовал у вас пару минут назад), но все же, мы по кругу возвращаемся к моему предыдущему комментарию
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.example.com;
root /var/www/example.com;
location / {
index index.php;
try_files $uri $uri/ /index.php?$args;
}
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_certificate /../fullchain.pem;
ssl_certificate_key /.../privkey.pem;
ssl_dhparam /.../ssl-dhparams.pem;
...
}