【サイトをHTTPS化③】.htaccessファイルでHTTPからHTTPSにリダイレクト

    icon-clock-o読了時間:約14分35秒

前回までの記事
【サイトをHTTPS化①】SSLサーバ証明書の登録(さくらインターネット) にて
借りているサーバーに申し込んでSSL証明書を発行してもらってhttps://~のURLを使用する準備が整い、
【サイトをHTTPS化②】安全な接続(緑の鍵マーク)に向けてコンテンツを修正にて
サイトのコード記述を修正して、緑の鍵マークが出るようになったので、
いよいよ『http』にアクセスしようとした人を
『https』に飛ばしてもらう指定ができる状態になりました。

というわけで今回はリダイレクト設定の記述方法をご説明します。

 目次 

まず最初に、サイトでWordPressを使っているかどうか
 ・Wordpressを使っていない
 ・Wordpressでサイトを作っている
 ・HTMLサイトとWordpressを併用している

.htaccessファイルでリダイレクトする
 .htaccess(エイチティーアクセス)ファイルとは
   ∟編集前の注意点
   ∟今の.htaccess ファイルの状態を保存・確認
.htaccessに記述するリダイレクトの内容
   ∟WWWあり・なしや独自ドメインへのリダイレクトも同時に書く場合
 .htaccess ファイルを保存してアップロード
 リダイレクトされているかチェック


まず最初に、サイトでWordPressを
使っているかどうか

WordPressを使っていない

WordPressを一切利用していない通常のHTMLサイトの場合は
.htaccessファイルを編集してリダイレクトすればOKです。

WordPressでサイトを作っている

WordPressでサイトを作っている場合は、常時SSL化プラグインが便利です。
(※いざ不具合が起きたらすぐに元に戻せるように、あらかじめサイトの
 現状のバックアップを取ってからプラグインをインストール&有効化してください

『 Really Simple SSL 』 などのインストールして有効化するだけの
プラグインが提供されているので、そちらをご利用ください。

また、さくらインターネットのレンタルサーバーを借りている場合は
専用のWordPress用常時SSL化プラグインを公開してくれているので、
それをWordPressで検索してインストールするだけのようです。
詳細はさくらインターネットのヘルプをご確認ください。
【WordPress】常時SSL化プラグインの使い方

HTMLサイトとWordpressを併用している

うちのサイトのように、自サイトの階層下にWordPressを置いてブログ等を運営している場合は
リダイレクトと合わせて他の部分も修正しないと多分エラーが出るので、
【サイトをHTTPS化④】リダイレクト後のエラー修正・階層下のWordPress設定 を合わせてご覧ください。
自サイトの階層下にWordPressがある場合


.htaccessファイルでリダイレクトする

リダイレクトとは、Webサイト上で閲覧者が指定したウェブページ(URL)から
自動的に他のウェブページに転送されること。

今回は【 http://●●.com 】に誰かがアクセスしようとしたら、そのページじゃなくて
【 https://●●.com 】に連れてきてね!とお願いする
ため、
301リダイレクトの指令を.htaccessファイルに書き込み、保存してアップロードします。


.htaccess(エイチティーアクセス)ファイルとは

【.htaccess】特定の相手のアクセスを拒否・サイトに制限をかける の記事でもお話しましたが、
.htaccessファイルとは、サーバーの挙動を制御する
Apacheというプログラムソフトに対する設定を行うもの。

こう言うと分かりづらいのですが、要するに、自分のサイトが間借りしているサーバーに対して
『 こういう時はこうしてほしい 』 というお願いを記述するファイルが.htaccess
ということです。

編集前の注意点

.htaccess ファイルは記述やアップロード方法を間違えると
サイトそのものがエラーで表示されなくなったりもしますので取り扱いは慎重になさってください。
また、何か間違えてしまった時にすぐ元に戻せるように
念のため元の.htaccess ファイルのコピーを保存しておきましょう。

もし.htaccess ファイルをいじった後で自サイトにアクセスしてエラーが出るようなら、
一旦アップロードした.htaccess ファイルを削除してサイトを正常な状態に戻してください。

ファイルに記述した内容と間違い方によっては、処理を延々と繰り返す状態になってしまい、
自分が借りているレンタルサーバーに多大な負荷が掛かり、最悪の場合はサーバーがダウンします。
もしサーバーがダウンすると、同じサーバーを借りている他のサイトさんも
表示されない状態になってしまい、大変な迷惑が掛かってしまいます。
さすがにこれは滅多に起きることではありませんが、
その可能性もあるということを覚えておいていただいて
エラーが出たまま放置せず、すぐに修正や削除を行うようにしてくださいね。

今の.htaccess ファイルの状態を保存・確認

いつも.htaccess ファイルを編集して使っている方なら良いのですが、
今まではテンプレートを借りてそのまま運営していて、
今回初めて.htaccess ファイルをいじる、という方はまず現状の確認と、コピー作成を行ってください。

FFFTPなどのFTPクライアントソフトを使って、現状の.htaccess ファイルをダウンロードします。
htaccessファイルダウンロード
サイトの構成ファイルが保存されているフォルダを開き、
ダウンロードした.htaccess ファイルを見つけてください。
右クリックでコピー&貼り付けして複製を作り、ファイルの名前と拡張子を変更します。
『 .(ドット) 』 から始まる名前のままだと、編集・保存ができないので、
ドットは削除を削除してテキスト用の拡張子『.txt』を最後に付け足すか、
適当に自分に 『 これは.htaccessのバックアップファイル 』 と分かる名前に変更しましょう。
いざという時に使うため、間違えて編集・削除しないようご注意ください。
.htaccessの名前変更
次に元のファイルの名前を変更します。
これも『 .(ドット) 』 から始まる名前のままだと、編集・保存ができないので、
一時的に名前を変更するか、テキスト用の拡張子『.txt』を付けてください。

テキストファイルとして保存されたら、ダブルクリックで開くか、テキストエディタを選択して開きます。
例えばメモ帳で開くとこんな感じ。
.htaccessをメモ帳で開く
サイト作成時にどこかのサイトさんからテンプレートをお借りしてサイトを作った場合、
最初から .htaccess ファイルがくっついていることもあります。
その場合もほぼデフォルトの状態で何も記載されていないと思いますが、
既に何かが記載されている場合は、何が書かれているのかこの機会に調べてみてくださいね。

.htaccessに記述するリダイレクトの内容

●●●の所は、自サイトのドメインに変更してください。
(■■■.comとか△△.jpとか)

HTTPSページにリダイレクト
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://●●●/$1 [L,R=301]
たぶんコレをそのままコピペしたらいけると思うのですが、
ダメだった場合はこちらの記述を試してください。
HTTPSページにリダイレクト(2)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


WWWあり・なしや独自ドメインへの
 リダイレクトも同時に書く場合

【.htaccess】さくらインターネットでのWWWあり・なしドメイン設定でご説明したように、
自分のサイトが【 http://●●.com 】と【 http://www.●●.com 】、
どちらでもアクセスしたら【 http://●●.com 】に辿り着くようにリダイレクトで設定している場合は
今回、HTTPSのリダイレクトを追記する形になります。

その場合は、RewriteEngine onの部分の記述は1回で構いません
※複数記述しても問題ないので、リダイレクトごとに毎回記述してもかまいません。
うちのサイトだとこんな感じになっています。

リダイレクトをまとめて記述

RewriteEngine on

# (ΦωΦ)<①WWWありURLをなしにリダイレクト
RewriteCond %{HTTP_HOST} ^www\.pc-pier\.com
RewriteRule (.*) http://pc-pier.com/$1 [R=301,L]

# (ΦωΦ)<②初期ドメインを独自ドメインにリダイレクト
RewriteCond %{HTTP_HOST} ^●初期ドメイン●\.sakura\.ne\.jp(:80)?$
RewriteRule ^(.*)$ https://pc-pier.com$1 [R=301,L]

# (ΦωΦ)<③今回追加したHTTPSへのリダイレクト
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://pc-pier.com/$1 [L,R=301]

・(ΦωΦ)の行は、例として分かりやすくコメントを付けてるだけなので
 ご参考にされる際はその行を省いて記述してください。
・空けている行も詰めて構いません。
・●初期ドメイン●と独自ドメイン(pc-pier.com)の部分は
 自サイトのものに書き換えてください。

これでちゃんと動いてるからたぶん合ってるんだと思うんですよね…。
なんとなくこうかなーという感じで書いてるので妙に不確かですいません。


.htaccess ファイルを保存してアップロード

記述が完了したらファイル保存し、FTPソフトでサーバーにアップロードします。
.htaccess ファイルは、拡張子を付けているとサーバー上で正常に動作しません。
そのため、テキストファイルを作成した時に付いている
『 .txt 』 などの拡張子を削除する必要があります。

それでは、FTPソフトでファイルをアップロードして
サーバー側で 『 .htaccess 』 に名前を変更しましょう。

例えばこちらは 『 2.htaccess 』 というファイルを 『 .htaccess 』 に名前変更しています。
htaccessファイルをサーバー側で名前変更
こうして .htaccessファイルがサーバー上にアップロードされると、
そこに記述した指定(今回は301リダイレクト設定)が反映されるようになります。

アップロード後はすぐに自サイトの状態を確認しましょう。
トップページや他のページを確認して、もしも上手く動作せず
サイトにエラーが出ているようなら、一旦 .htaccess ファイルを削除するか、
リネーム(名前変更)して停止させてください。

リダイレクトされているかチェック

サイトにエラーが出ていないことを確認したら、
次にリダイレクトが上手く動いて、HTTPSに転送されるかをチェックします。

そのまま自分で【 https://www.●●.com 】にアクセスして表示を確認するか、
リダイレクトチェックツールなどを使って確認してください。

※各ブラウザでキャッシュ(過去にアクセスした履歴)が残っていると
そちらが優先されて表示され、現在の状況が正しく確認できないため、
確認前に全ての履歴を削除してからアクセスしてください

エラーが起きた場合は次の記事
【サイトをHTTPS化④】リダイレクト後のエラー修正・階層下のWordPress設定
をご覧頂いて、問題箇所を修正してください。


関連記事

  【サイトをHTTPS化①】SSLサーバ証明書の登録(さくらインターネット)
  【サイトをHTTPS化②】安全な接続(緑の鍵マーク)に向けてコンテンツを修正
  【サイトをHTTPS化③】.htaccessファイルでHTTPからHTTPSにリダイレクト
  【サイトをHTTPS化④】リダイレクト後のエラー修正・階層下のWordPress設定
  【サイトをHTTPS化⑤】HTTPSサイトをSearch Consoleに登録
  【サイトをHTTPS化⑥】混在コンテンツを探す

 良かったら押してみてください♥

  • このエントリーをはてなブックマークに追加
  • Pocket