Dokumentasi resmi NGINX menganjurkan untuk menggunakan arahan balik alih-alih menggunakan arahan penulisan ulang untuk memengaruhi pengalihan. Ini demikian, karena permintaan yang ditulis ulang tidak dimaksudkan untuk server itu, tetapi masih diproses di blok server itu. Jadi pengalihan dilakukan dengan benar dengan arahan balik, karena semua pemrosesan dihentikan dan respons dikirim segera. NGINX melarang menulis ulang untuk pengalihan di sini: http://nginx.org/en/docs/http/converting_rewrite_rules.html
Sintaks untuk arahan balik adalah: URL kode balik; Karena Anda awalnya melakukan penulisan ulang permanen, maka Anda dapat menggunakan 301 sebagai kode untuk merespons, menunjukkan bahwa itu adalah pengalihan permanen. Alamat https Anda akan diteruskan di bagian url. Referensi: http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return
Jadi konfigurasi Anda yang benar adalah
server {
listen 80;
server_name *.mydomain.com;
#Redirect all nonssl requests to ssl.
return 301 https://$server_name$request_uri;
}
Ini mungkin akan membiarkan Anda mengarahkan ulang dengan benar ke domain ssl Anda, dengan blok server wildcard. Anda juga dapat mencoba nama server generik garis bawah '_' atau $ host seperti yang disarankan dalam komentar di atas. Beritahu kami!