2016-07-23 110 views
0

有很多我们的平台上托管的方式如下子域:如何使用www将用户重定向到Nginx的裸露域名?

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

把'nginx'配置成[从URL丢失''前缀]是很容易的(http://stackoverflow.com/questions/7947030/nginx-no-www-to-www-and- www-to-no-www),但是如果您的SSL证书对www域无效,那么客户端将不会首先连接。当你有一个通配符证书时(这种情况下你可能不会问这个问题) –

回答

0

你不能做到这一点与重定向:在SSL/TLS连接是HTTP请求和301重定向的答案之前。但是,您只有* .company.com证书,它仅适用于一个级别(a.compaby.com)不是2个或更多(a.b.company.com或www.a.company.com)。

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

相关问题