Pleskでhttpをhttpsにリダイレクトして完全SSL化する方法(nginx)
WebサイトをSSL化する動きが活発になっていますね。
SEOにも影響するWebページ全体HTTPS化(常時SSL)の効果と実装のポイント | 【レポート】Web担当者Forumミーティング 2014 Autumn | Web担当者Forum
SEOにも効果があるということで、ECやお問い合わせフォームだけの個別ページだけでなく、サイト全体をSSL化させる方法が推奨されています。
HTTPのページをサーバー側でHTTPSにリダイレクトする
今回の方法は、SSLを導入した後、今までのデフォルトページ https://◯◯◯◯.com をサーバー側で自動的に、https://◯◯◯◯.com にする方法です。これを使えば、例えば、https://◯◯◯◯.com/aiueo.html がリンクされていてページを開いたとしても、https://◯◯◯◯.com/aiueo.html が表示してくれるわけです。http: と https が混合しなくなるので、ウェブマスターツール的(サイトマップ的にも)理想な状態ですね。
導入する前に、確認する事項が2つあります。まず1つ目は、SSLの導入です。
・SSL暗号化認証を導入しよう|Plesk入門・運用情報サイトぷれつく
SSLが入っていないと、閲覧者側で例外設定を行わなくてはならないため先に導入しておきましょう。年額2000円程度なので、これでSEOにも効果があるのならやって損は無いはず。
次に、サイト全体ではなく、個別ページのみSSL化する方法ですが、
・Nginxのエラーページやリライト設定|Plesk入門・運用情報サイトぷれつく
こちらから、リライト(rewrite)する方法がありますので、特定のページのみSSL化する場合は参考にして下さい。
コントロールパネル上で設定が可能!リダイレクトループに気を付ける
Pleskにログインし、SSLを導入したドメインを選択しホスティング設定 > SSLサポートにチェックを入れて証明書を選択してください。
次に、ウェブサーバ設定にして、nginx の追加ディレクティブを選択します。
ここに、リダイレクトの設定を記述する必要になるのですが、Pleskは特殊で、下記のサイトを参考にして記述を行うとリダイレクトエラーが発生します。
HowTo: Nginx Redirect All HTTP Request To HTTPS Rewrite Rules
rewrite ^ https://$server_name$request_uri? permanent;
Pleskではないサーバーだとすんなり導入できるのですが、Pleskのみリダイレクトエラーが発生してしまいます。僕自身もかなりハマってしまいました。では、どうすればいいのかというと、特にSSHを開かずに追加ディレクティブに
if ($server_port = 80) {
rewrite ^ https://$host$request_uri permanent;
}
上記を記述することで、エラーも出来ずにhttps 化することができます。設定完了後は
サービスの再起動を必ず行いましょう。
※ 追記、301リダイレクトの注意点やアドセンス収益について記事を書きました。リスクなど考えて導入を検討してください。必見です。
サイトを完全SSL化する前に気をつけたい収益やリダイレクトの話|Plesk入門・サーバー運用サイトぷれつく