nginx:根据原始请求URL(不是$ server_name)redirect到SSL

我有一个类似于这个nginxconfiguration:

server { server_name my-english-site.com my-french-site.com; listen 0.0.0.0:80; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 0.0.0.0:443 ssl; server_name my-english-site.com my-french-site.com; } 

当有人去http://my-french-site.com时 ,它会redirect到https://my-english-site.com ,因为rewrite指令使用$server_name指令中的第一个服务器。

我尝试用$server_name $hostreplace$server_name ,期望它使用Host请求头的值。 但是它仍然会redirect到英文url。

如何将非HTTPS请求redirect到相应的HTTPS URL?

谢谢!

显然使用$hostvariables是这样做的(谢谢@ gparent)。 我只是再次testing它,它的工作原理。