如何使用www将用户重定向到Nginx的裸域?

时间:2016-07-23 10:36:33

标签: redirect nginx https

我们的平台上有很多子域名通过以下方式托管:

server {
  listen          443 ssl;
  server_name     *.company.com;
//...
}

不幸的是,这与www.something.company.com匹配请求,但SSL密钥不支持此功能,我想重定向以www开头的请求。对于请求的其余部分,例如:something.company.com。

这样做的最佳方式是什么?

我正在尝试使用不起作用的以下内容:

  server_name     *.company.com;
  if ($host ~* ^www\.(.*\.company\.com)$) {
    return 301 $scheme://$1;
  }

1 个答案:

答案 0 :(得分:0)

您无法通过重定向执行此操作:ssl / tls连接位于http请求和301重定向应答之前。但是您只有* .company.com证书,它只对一个级别(a.compaby.com)有效,而不是2个或更多(abcompany.com或www.a.company.com)。< / p>

唯一的解决方案是明确列出证书中的所有域。