サブドメイン、サブディレクトリで常時SSL化したあと、httpをhttpsにリダイレクトする方法
エックスサーバーだと、独自ドメインやサブドメインの常時SSL化の設定をするのは簡単です。
ただ常時SSL化したばあい、http(SSL無し)とhttps(SSL有り)の2種類のサイトが存在してしまうことになります。
このばあい、httpのほうにアクセスされてしまうと、せっかくのSSLの意味がなくなってしまいます。
httpにアクセスされたばあいに、httpsへ自動的にリダイレクト(転送)させます。その方法について、超初心者でもわかりやすいように解説します。
常時SSL化の方法
サブドメインの常時SSL化は、独自ドメインとおなじ方法でできます。
いろいろなサイトで似たようなことが書かれているし、おそらくこの記事にたどりついた時点で独自ドメインの常時SSL化は終わっているでしょうから、やり方だけさらっとおさらいします。
独自ドメイン、サブドメインの常時SSL化
1、エックスサーバーの「サーバパネル」にログイン。
2、「ドメイン」の項目の「SSL設定」をクリック。
3、次の画面にドメイン名が並んでいますので、SSL化したいドメインの「選択する」をクリック。
4、①「独自SSL設定追加」のタブをクリックし、②で設定したいサブドメイン(もしくは独自ドメイン)を選ぶ。
5、あとは下のほうにある「独自SSL設定を追加する」をクリックして確認すればOK。
サブディレクトリの常時SSL化
またサブディレクトリは親ディレクトリが常時SSL化していれば、とくに設定する必要はありません。すでに常時SSL化されています。
ワードプレス側での設定
サーバ側での設定はおわったので、次はワードプレス側での設定です。
これもいろいろなサイトで解説されているので、さらっとやり方だけ。
1、ワードプレスのダッシュボードの「設定」>「一般」に移動。
2、「WordPress アドレス (URL)」と「サイトアドレス (URL)」の項目の「http」を「https」に修正。要はsを付け足せばいいだけです。
3、下のほうにある「変更を保存」ボタンをクリック。
これで一回ログイン画面に戻されるので、もう一度ログインしてください。常時SSL化の設定はこれで終わりです。
httpからhttpsに転送
ここからがこの記事のメインの部分です。
httpにアクセスしたものを、すべてhttpsに転送します。
独自ドメイン、サブドメイン、サブディレクトリとも、やり方はすべておなじです。
それぞれのワードプレスインストール場所の「.htaccess」のファイルに、あとで示すコードをコピペするだけでOKです。
ファイルにはFTPソフトでアクセスしてもいいですが、エックスサーバーのばあいはブラウザからファイルマネージャが使えます。
ログインページで①をクリックして、ファイルマネージャからログインしてください。
次に「.htaccess」のあるディレクトリまで移動します。自分のサイトのディレクトリの中にあります。
たとえば独自ドメイン「https://syowp.com/」なら、「syowp.com」の中の「public_html」の中(ファイル名をクリックで移動)。
サブドメイン「https://minorgame.syowp.com/」なら、「syowp.com」の中の「public_html」の中の「minorgame」の中。
サブディレクトリ「https://minorgame.syowp.com/wordpress/」なら、「syowp.com」の中の「public_html」の中の「wordpress」の中(構造はサブドメインと同じ)。
「.htaccess」を見つけたら①チェックを入れて、②「編集」をクリックします。
ここに書かれている文字はいっさい消さないでください。
①一番最初に下のコードをコピーして貼り付け、②「保存する」をクリック。
# BEGIN リダイレクト
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule>
# END リダイレクト
これでhttpのアドレスにアクセスしても、自動的にhttpsにリダイレクトされます。
まとめ
常時SSL化はしたけど、そのあとのリダイレクト設定をしていないということが多いかと思います。
とくにサブドメインやサブディレクトリで新しいサイトを作ると、このことを忘れてしまいます(筆者のことです。今回この記事を書いたのもほぼ自分のためです)。
httpのサイトにアクセスできる状態というのは「保護されていないサイト」にアクセスすることにもなり、訪問者側からすれば気持ちのいいものではありません。
httpにアクセスされないように、このリダイレクトを使ってhttpsに転送させましょう。