2016-07-23 10 views
0

当社のプラットフォーム上で次のようにホストされているサブドメインがたくさんあります。Nginxでwwwを裸のドメインにリダイレクトする方法は?

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から' www.'接頭辞を失う]ように設定するのは簡単です(http://stackoverflow.com/questions/7947030/nginx-no-www-to-www-and- www-to-no-www)ですが、SSL証明書がwwwドメインに対して有効でない場合、クライアントは最初に接続しません。あなたがワイルドカード証明書を持っている場合にのみ、本当に便利です(この場合、おそらくこの質問をしないでしょう) –

答えて

0

あなたがリダイレクトであることを行うことはできません:SSL/TLS接続は、HTTPリクエストと301リダイレクトの答えの前にあります。しかし、あなたは* .company.com証明書しか持っていません.2つ以上のレベル(a.b.company.com、またはwww.a.company.com)ではなく、1つのレベル(a.compaby.com)でのみ有効です。

唯一の解決策は、証明書のすべてのドメインを明示的に一覧表示することです。

関連する問題