2016-07-23 95 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)。

唯一的解決方案是明確列出證書中的所有域。

相關問題