如何重定向到 https 但保持主机模式不变

如何重定向到 https 但保持主机模式不变

我有以下 nginx 服务器配置,其工作原理是将任何 http 请求重定向到https://www.foo.com

我的应用程序也可能有数百个子域,所以我需要它重定向但维护子域,因此:

http://asdf.foo.com ->https://asdf.foo.com http://abc123.foo.com->https://asdf.foo.com

我怎样才能做到这一点?

server {
   listen       80;
   server_name foo.com www.foo.com;

   location ^~ /.well-known/acme-challenge/ {
      alias /etc/letsencrypt_webroot/.well-known/acme-challenge/;
   }

   location / {
      return 301 https://www.foo.com$request_uri;
   }
}

答案1

有一个变量$主机您可以将其用作 URL 的主机部分。

将最后一段改为

   location / {
     return 301 https://$host$request_uri;
   }

相关内容