Офіційна документація NGINX рекомендує використовувати директиву повернення замість використання директиви перезапису для здійснення перенаправлення. Це так, оскільки перезапис запиту не призначений для цього сервера, але він все одно обробляється в цьому блоці сервера. Тож переадресації правильно робляться замість директиви повернення, оскільки вся обробка зупиняється і відповідь надсилається негайно. NGINX відмовляє переписатись на перенаправлення тут: http://nginx.org/en/docs/http/converting_rewrite_rules.html
Синтаксис директиви для повернення: URL повернення коду; Як ви спочатку робили постійне перезапис, тому відповідно ви можете використовувати 301 як код для відповіді, вказуючи, що це постійне переадресація. Ваша https-адреса буде передана у розділі URL. Довідка: http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return
Отже, ваша правильна конфігурація була б
server {
listen 80;
server_name *.mydomain.com;
#Redirect all nonssl requests to ssl.
return 301 https://$server_name$request_uri;
}
Це, ймовірно, дозволить вам правильно перенаправити ваш домен ssl, з блоком серверів підстановки. Ви також можете спробувати загальне підкреслити ім'я сервера '_' або $ хост, як було запропоновано у коментарі вище. Повідомте нас!