httpからhttpsへの正しく安全なリダイレクト【.htaccess】

HTML WordPress

サイトにSSLを設定したけど、今までのユーザーはブックマークからhttpに飛んでしまう…。.htaccessを使えば良いらしいけど、このやり方は本当に合ってるの?

この記事では、上記の疑問にお答えします。

こんにちは、はとむぎです。
今回、サーバーをエックスサーバーに移転したのと同時に、SSLにも対応させ直しました。その時に今回の方法でリダイレクトさせました。

時代背景的に、セキュリティを考慮してSSLに対応させるというのはかなり一般的になってきましたね。Googleの検索エンジンでもhttpsのサイトを優先的に評価しインデックスすると公式で発表しています。最近ではサーバー管理会社の無料SSLサービス等もあり、SSLを導入するサイトもかなり増えてきましたね。

httpsを使用したサイトに変えた後の正しい行動としては、リダイレクトさせるのが一番です。なぜならば、Googleの検索エンジンではhttphttpsのサイトは別URLとしてみなされ、アクセスや評価が分散されてしまうからです。

そこで、.htaccessを使ってリダイレクトさせ、サイトに訪れるユーザー全員をhttpsでのアクセスに統一するというわけです。これから詳しく説明していきます。

そもそも.htaccessとは?

まず、皆さんのサイトには.htaccessファイルがあるでしょうか?なければこれを期に作成しましょう。Wikiwandではこのように説明されています。

.htaccess(ドットエイチティーアクセス)とは、Apacheを用いたWebサーバにおいて、ディレクトリ単位で設置及び設定を行える設定ファイルである。

https://www.wikiwand.com/ja/.htaccess

.htaccessは今回のようにリダイレクトさせたり、ファイルのアップロード容量を変更したりなど、サーバー関係の設定を変えることができるファイルです。

このファイルはサイト内に複数置くことができ、ファイルが置かれている場所以下のディレクトリに効果があります。サイト直下に置いた場合はサイト全体に効果があるということですね。

httpsリダイレクトの答えは、「.htaccess」で「301リダイレクト」

この.htaccessを使って、301リダイレクトをしましょう。301リダイレクトとは、「サイトを恒久的に移転する」という意味合いがあります。リダイレクト前のサイトはもう使わないよ、みたいな意味ですね。

似たようなものに302リダイレクトというのがありますが、こちらは「サイトを一時的に移転する」という意味で、メンテナンス時など、移転前のサイトにまた戻ってくるときに使います。今回は301リダイレクトを行います

.htaccessの記述

まず、.htaccessファイルを作成します。ドットで始まり拡張子がないという変わったファイルです。すでにある場合はそこに続けて記述します。

テキストエディタの関係でこの名前のファイルが作れないときは、メモ帳に書いて最後にファイル名を.htaccessに変更すればOKです。注意アラートが出るかもしれませんが、そのまま続行して大丈夫です。

作ったファイルに以下を記述します。

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

これをサーバー直下にアップロードしたら完了です。試しにhttpでアクセスしてみて、httpsに自動的に変われば正しく効いている証拠です。作業自体はこれでおしまいです。

WordPressサイトの注意点

WordPressで作られたサイトの場合は、忘れずに項目を更新しておきましょう。

「設定」→「一般設定」の「WordPressアドレス(URL)」と「サイトアドレス(URL)」をhttpsのアドレスに変更すればOKです。

また、httpで書いていた内部リンクなども併せて確認しておきましょう。どのみちhttpsに飛ばされるのですが、httpへのアクセスのため、一瞬読み込みが入ってしまいます。サイトの表示速度は重要なので、できるだけ変えておくのがいいかと思います。

まとめ

作業自体は簡単ですが、Googleからの評価を落とさないためにも設定などはしっかり行いましょう。でないと本末転倒になってしまいますからね。