如何将某些路径的 HTTP 重定向到 HTTPS,但不重定向到其他路径?

如何将某些路径的 HTTP 重定向到 HTTPS,但不重定向到其他路径?

对于给定的 vhost,我想要将一些路由/路径/URI 重定向到 HTTPS,同时允许其他路由/路径/URI 在 HTTP 上请求。

具体来说,我想允许通过 HTTP 请求 Artifactory 包,但要求通过 HTTPS 访问 Web UI。

我怎样才能做到这一点?

答案1

首先,确保您的server块正在监听端口 80 和 443 上的请求。然后包含一个条件$scheme和一个永久的rewrite

因此,要强制/webapp(其下的任何内容) 使用 HTTPS,您可以使用:

server {
  listen *:443 ssl;
  listen *:80;
  server_name www.example.com;

  if ($scheme != 'https') {
    rewrite ^/(webapp(/.*)?)$ https://$http_host/$1 permanent;
  }

  # ...
}

相关内容