以下を実現するには、リダイレクトの組み合わせが必要です。
にリダイレクトhttp://example.com
しhttp://www.example.com
ながら、にリダイレクトhttps://www.example.com
しhttps://example.com
ます。
www
サイトにhttp
.
ただし、SSL 証明書はwww
.
経由でアクセスする場合、ドメイン名にプレフィックスhttps
を付けたくありません。www
https://www.mysite.com
からへのリダイレクトはhttps://mysite.com
、クライアントが への最初の要求を行った後にのみ発生しますhttps://www.mysite.com
。
この最初の接続が機能するには、 のサーバーがhttps://www.mysite.com
に対して有効な証明書を持っている必要がありますwww.mysite.com
。そうでない場合、この接続は発生しません (サーバーはリダイレクト応答を送信しません)。
それでもリダイレクトが必要な場合は、同じサーバー上で、サーバーは、提供するホスト名に対して有効な証明書を提示する必要があります。2 つの Subject Alternative Name DNS エントリを持つ証明書を取得する必要があります:mysite.com
とwww.mysite.com
; これにより、両方のホストに同じ証明書を提供できます (必要に応じて書き換えルールを使用できます)。
(クライアントがそれをサポートすると予想される場合は、2 つの異なる証明書で Server Name Indication を使用することもできますが、それは通常、完全に異なるホスト名に対するものです。)
CA が両方に有効な証明書を発行することは非常に一般的でmysite.com
ありwww.mysite.com
、場合によっては追加料金なしで、もう一方のいずれかに申請することもできます。
これをHTTPS 以外のドキュメント ルートの .htaccess ファイルに追加します。
RewriteCond %{HTTP_HOST} ^mysite.com$
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R]
そして、これは HTTPS ドキュメントルートにあります:
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^www.mysite.com$
RewriteRule ^(.*)$ https://mysite.com/$1 [R]