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

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

我有一个与此类似的 nginx 配置:

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,它会重定向到https://my-english-site.com,因为重写指令使用$server_name指令中的第一个服务器。

我尝试$server_name用替换$host,希望它使用请求标头的值Host。但它仍然重定向到英文网址。

如何将非 HTTPS 请求重定向到相应的 HTTPS URL?

谢谢你!

答案1

显然,使用$host变量是实现此目的的方法(感谢@gparent)。我刚刚再次测试了它,它有效。

相关内容