Aqui está sua reescrita:
rewrite ^ https://$server_name$request_uri? permanent;
O problema é que você usou $server_name
, que não é o nome do host HTTP que o navegador solicitou, mas o primeiro server_name
definido no bloco server
.
Para corrigir isso, altere para $http_host
, que é o nome do host solicitado pelo navegador.
rewrite ^ https://$http_host$request_uri? permanent;
Melhor ainda, não use rewrite
. É suficiente para return 301
.
return 301 https://$http_host$request_uri$is_args$args;