【常時SSL】httpからhttpsに301リダイレクトする方法

本ページはプロモーションが含まれています

Googleが検索インデックスにおいて、SSL化を推奨したこともあり、今では多くのWebサイトでSSL化が実装されています。

SSLの作業もレンタルサーバーのホスティングサービスが、無料のSSLを提供していたりとだれでも簡単に行えるようになっています。

ただ、SSL化の作業は証明書を発行し、独自ドメインに設定するだけではありません。検索インデックスで優先的にhttps://のURLをインデックスしてもらうには、URL正規化を行う必要があります。

今回は.htaccessを使って、URL正規化させる方法を紹介します。

目次

URL正規化とは

URLには一般的な「http://〇〇.com」やSSL化した「https://〇〇.com」、wwwを加えた「https://www.〇〇.com」など、いくつかの形式が存在します。

URL正規化とは、上記のような同一ページに複数のURLが存在する場合に、検索エンジンに対して正規のURLを明示することを言います。

これらのURLは、URL正規化を行わないと、同じコンテンツのURLが複数存在することになり、検索エンジンに重複コンテンツとしてみなされる可能性があります。

こういったマイナス評価が重なると、サイト全体のSEO評価が低下してしまいます。

.htaccessに301リダイレクト処理を記述する方法

それでは、.htaccessの301リダイレクトを使って「http://」から「https://」にURL正規化する記述をしていきます。

WordPressをインストールしている場合など、.htaccessファイルにすでに何らかの記述がある場合はそれらの記述を削除しないように注意してください。

サイト内全てのページをリダイレクトさせる

サイト内の全てのページを「http://」から「https://」に301リダイレクトさせる処理です。下記の記述を.htaccessファイルに記述してください。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

2行目のRewriteCondは、3行目のRewriteRuleの処理を実行するための条件を定義しています。上記では、https以外のURL場合に(2行目の記述)httpsに301リダイレクトさせる(3行目の記述)という指示をしています。

また、サイト内の全ページをSSL化し常時SSL化させるには、サイト内の内部リンクと読み込んでいる外部ファイルを「https://」に変換する必要があります。

少し手間のかかる工程なので、できるだけリンクの指定はメンテナンス性が高い相対パスで記述しましょう。

サイト内の一部ページをリダイレクトさせる

お問い合わせフォームや決済ページなど一部のページのみSSL化している場合は、下記のようにページのURLを指定してリダイレクトさせます。

.htaccessファイルに以下のコマンドを記述してください。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^(リダイレクトしたいページの相対パス).*$ [OR]
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

3行目のRewriteCondでリダイレクトさせたいURLを指定しています。例えば、http://example.com/contact/ というページをリダイレクトさせたい場合は、

RewriteCond %{REQUEST_URI} ^/contact/.*$ [OR]

のように記述します。

複数のURLを指定したい場合は、改行して適宜追加していきます。

これで.htaccessを使った「http」から「https」への301リダイレクトは完了です。

プラグインを使用してリダイレクトする方法

WordPressを使用している方で、あまり.htaccessを編集したくないという方はプラグインを使用することをおすすめします。

今回はインストールするだけで、常時SSL化の設定をしてくれる「WP Force SSL」を紹介します。

WP Force SSLをインストール

WordPress管理画面から「プラグイン」→「新規追加」をクリックします。

「WP Force SSL」をインストールし、そのまま「有効化」してください。

wp force sslのインストール
wp force sslのインストール

基本的にデフォルトの設定のままで問題ありません。

Wp Force SSLの設定画面
Wp Force SSLの設定画面

「WP Force SSL」の設定画面にもあるように、すべてのページをSSL化している場合は、「設定」→「一般」をクリックし、「WordPressアドレス(URL)」と「サイトアドレス(URL)」を「https」のアドレスに変更を忘れずに行いましょう。

WordPressの一般設定画面
WordPressの一般設定画面

これでプラグインの設定は完了です。

301リダイレクトがエラーになる原因

Mixed Contentと表示される

Mixed Contentのエラー表示
Mixed Contentのエラー表示

.htaccessファイルの編集の部分でも触れましたが、サイト内の内部リンクや外部ファイルのリンクが「http」のままになっている場合に、ブラウザのデバッグツールに「Mixed Content」と表示されます。

もう一度サイト内のリンクが「https」になっているか確認しましょう。

リダイレクトループになってしまう

WordPressの設定を変更した際やリダイレクト処理の設定をしたときに起きやすい現象です。

サイトが一時的に見れなくなりますが、よくあることなので慌てずに対応しましょう。

具体的な対応方法は下記の記事がわかりやすく紹介されていました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

志賀裕一のアバター 志賀裕一 サーバーチョイス 編集者

Web開発歴6年のフリーランスエンジニア。大学在学中から教育系Webメディアを運営するスタートアップにて、Webディレクターとして従事。独立からこれまでに多くのコーポレートサイトやCRM、予約システムなどのシステム開発、オウンドメディア運営を経験。20以上のレンタルサーバーの使用経験を持つ。

目次