如何重定向到https(模式除外)

时间:2018-09-21 13:07:46

标签: nginx

我想重定向到nginx.conf中的https服务器配置,除非URL带有模式。

所以基本上我需要结合重定向:

server {
    listen 80;

    server_name foo.com;
    return 301 https://foo.com$request_uri;
}

这个服务器配置博客:

server {
   listen       80;
   server_name foo.com;

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

有没有一种方法可以解决当前请求不是

http://foo.com/.well-known/acme-challenge/

然后它应该执行301重定向到https。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

server {
   listen       80;
   server_name foo.com;

   location /.well-known/acme-challenge/ {
      alias /etc/letsencrypt_webroot/.well-known/acme-challenge/;
   }
   location / {
      return 301 https://foo.com$request_uri;
   }

}

这是我们在同一个域中处理多种服务的方式。您可能需要进行一些调整才能使其正常工作,但这是最基本的

每当有一个请求发送到http://foo.com/.well-known/acme-challenge/时,第一个定位块将起作用,而对于任何其他网址,以下网址将起作用