【SSL対応】.htaccessを使ってhttpからhttpsにリダイレクトさせる方法

サイトの信頼性・セキュリティを高めるためにSSL対応が必須

2018年7月からGoogle Chromeブラウザでは、SSLサーバー証明書(SSL証明書)を導入していないサイトに対して、「保護されていません」の警告表示が開始されています。

Google Chromeは最も利用者の多いブラウザですので、警告表示が出ることはサイトの信頼性を大きく損ねることになります。
SSL対応は検索順位にも影響すると言われており、SSL対応が必須と言っていい状況になりました。
しかし、サイトをSSL対応させても、以前のURL(httpで始まるURL)にアクセスされてしまう可能性があります。

今回はサイトに「http」でアクセスされた場合に、「https」に転送される方法を解説します。

サイトをhttps化する手順

まずサイトをhttps化する手順を理解しておきましょう。

  1. サーバーでSSLを設定
  2. リンクや画像を一部修正(不要な場合あり)
  3. 投稿・固定ページ内のリンクを修正(WordPressの場合)
  4. .htaccessでhttpからhttpsへリダイレクト処理

「2.リンクや画像を一部修正」は、相対パスでhtmlを書いていれば不要です。絶対パスで書いている場合は置換しましょう。

WordPressを使っている場合は、2〜4までプラグインで一括でできます。この方法は後述します。
サーバーや使用しているツールによっては手作業で変更しないといけないケースもありますので、サイトの状況に合わせて対応してください。

.htaccessを使ってhttpからhttpsにリダイレクト(転送)する

.htaccessを使ってhttpからhttpsにリダイレクト(転送)するには、下記の記述を追加します。

「sample.com」の部分は、自分のドメインに変更してください。

この記述では「http」の頃のサイトの評価を引き継ぎするので検索順位に大きな変化はありません。
301リダイレクトと言って、以前のサイトの評価を引き継ぐタイプのリダイレクト方法です。
なぜこのような方法をとるかと言えば、まったく同じ内容の「http」と「https」のページはGoogleからすれば違うページだからです。
この場合は同じ内容のページが2つあるため、検索エンジンの評価が分散されます。
検索順位が下がる可能性があるので、「http」から「https」への変更は301リダイレクトを行いましょう。

ドメインの部分を変更すれば、FTPで.htaccessをアップロードして完了です。

以前のサイトの評価を引き継がない場合のリダイレクト

新規作成するサイトの場合や、ドメインの変更をするけれど以前のサイトの評価は引き継がないといった場合は、301リダイレクトとなりません。
「http」でアクセスされた場合に「https」へリダイレクトする記述をします。

httpからhttpsへリダイレクトするには.htaccessに下記を追加します。

「http://sample.com/」というURLでアクセスすると「https://sample.com/」にリダイレクトされるということです。
トップページ以外の場合も「https」が付いたそれぞれのページへリダイレクトされます。

WordPressならプラグインを使った方が早い

WordPressなら.htaccessの書き換えよりもプラグインを使った方が早く済みます。

プラグイン「Really Simple SSL」をインストールします。

Realy Simple SSL

Really Simple SSL

有効化すると、「はい、SSLを有効化します」のボタンをクリックすれば、サイトURLの変更やCSS、JSなども含めて一度に完了します。

Realy Simple SSLの有効化

有効化するとログアウトされるのでもう一度ログインしてください。

もし、「はい。SSLを有効化します」のボタンが表示されない場合はSSL導入が済んでいません。
先にSSLを導入してください。

終わりに

SSL対応は必須と言っていい状況になっていますので、なるべく早く行った方がいいでしょう。
最近はエックスサーバーなどのレンタルサーバーなら無料のSSL証明書を使えるところが多くなってきました。
費用もかかりませんのでぜひSSL対応を行ってみてください。

また、お使いのサーバーによっては.htaccessの書き換えができず、今回ご紹介した方法ができない場合があります。詳しくはお使いのサーバー会社にお問い合わせください。