【问题标题】:How to redirect users using www to the bare domain with Nginx?如何使用 Nginx 将使用 www 的用户重定向到裸域?
【发布时间】:2016-07-23 10:36:33
【问题描述】:

我们的平台上托管了很多子域,方式如下:

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;
  }

【问题讨论】:

  • 配置nginx 到lose the www. prefix from a URL 很容易,但是如果您的SSL 证书对www 域无效,客户端将首先无法连接。只有当你有一个通配符证书时它才真正有用(在这种情况下你可能不会问这个问题)

标签: redirect nginx https


【解决方案1】:

您无法通过重定向做到这一点:ssl/tls 连接位于 http 请求和 301 重定向答案之前。但是您只有一个 *.company.com 证书,它只对一个级别(a.compaby.com)有效,而不是 2 个或更多(a.b.company.com 或 www.a.company.com)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-17
    • 2013-10-31
    • 1970-01-01
    • 2014-03-29
    • 2012-05-05
    • 2015-01-07
    • 2015-04-24
    • 2014-07-02
    相关资源
    最近更新 更多