常時SSL化のリダイレクト設定とは何かね?
セキュリティレベルの低い状態のページへアクセスしてきたユーザーをセキュリティのしっかりしたページへ自動的に誘導する設定になります!
サーバーのSSL設定や、WordPressのSSL設定は行ったけど、リダイレクトの設定を行っていない方はいませんか? 結構、忘れやすいポイントだと思いますので、まとめておきます。
SSLのおさらい
インターネット上を流れるデータを暗号化して盗聴や改ざんを防ぐ仕組みがSSL(Secure Sockets Layer)と呼ばれるものです。ブログの場合は、ユーザーが利用するブラウザとサーバー間の通信が暗号化されるので、ユーザーはより安全に情報へアクセスできるようになります。
アクセスしよとしているページがSSL化されているかどうかは、次のように確認することができます。ブラウザのアドレスバーの表示が以下のように鍵アイコン付きになっていれば、そのページはSSLに対応しています。
なおSSLに対応していないページの表示は以下のようになります。このような場合は、重要な個人情報を入力する場合等は慎重に行う必要があると言えます。
リダイレクトとは?
保護されていない通信方法でアクセスしてきたユーザーを、SSLでセキュリティが確保された通信方法でのアクセスへ自動的に誘導してあげる仕組みです。
具体的に当ブログの例で示すと、http://kinyalog.comというURLでアクセスしてきたユーザーをhttps://kinyalog.com へ自動で誘導(リダイレクト)する動作となります。
設定にはプラグインを使うやり方等色々な方法がありますが、ここでは、ブログのコンテンツを送り出しているサーバー側で設定することにします。
.htaccessファイルを編集してリダイレクトの設定をしよう!
当ブログ(きにゃログ)で利用しているエックスサーバーを例にとって説明しますね。まずは、エックスサーバーのサーバーパネルへログインします。.htaccess編集という項目があるので、そこをクリックします。(下の画像の赤枠線のところ)
そのあと、リダイレクトを設定したいドメインを選択すると、画面が切り替わるので、.htaccess編集のタブをクリックします。すると、下記の画面になります。この画面になったら、.htaccessファイルの編集を始めていきましょう。
最初に.htaccessファイルの中身を別のファイルへコピーするなどして必ずバックアップを取るようにしましょう。.htaccessファイルは重要なファイルなので設定を誤ると正常にブログが表示されなくなってしまうこともあるので、バックアップはとても重要です。
.htaccessファイルの編集を始める前に必ずバックアップをとろう!
エックスサーバーの.htaccessファイルは最初は下記のような内容になっていると思います。
SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI ".*" Ngx_Cache_StaticMode
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
上記の状態の.htaccessファイルへ下記のコードを追加していきます。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
追加する場所(位置)がとても重要になります!必ず、#BEGIN WordPress ~ #END WordPressの塊り(ブロック)の上に追加するようにしてください。これは、WordPress用の処理を行うよりも先に、リダイレクトの処理を行う必要があるためです。
また、 #BEGIN WordPress ~ #END WordPressの中が良く似た構文になっているので、そこへ追加したくなりますよね。それもNGなんです。 #BEGIN WordPress ~ #END WordPressの塊り(ブロック)は、WordPressの設定を変更すると、内容が書き換わったり、無くなってしまうことがあるためです。
最終的に、.htaccessファイルの中身は以下のようになります。
SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI ".*" Ngx_Cache_StaticMode
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
リダイレクトのための追加設定は、既存設定の上に追加しよう!
加えて、 .htaccessファイルは、最後の行を改行だけの空行にしないといけない決まりがあるので、忘れずに確認しておきましょう。
.htaccessファイルの最後の行は改行だけの空行にしよう!
ここまでできたら、「確認画面へ進む」をクリックして、内容を確認し間違いが無いようだったら、「実行する」をクリックして編集結果を反映させます。
まとめ
リダイレクトの設定は結構忘れやすいポイントですね。また、私を含めてWordPressでブログを始める初心者の方は、.htaccessファイルの編集はちょっとしたハマりポイントになる場合もあると思います。慎重にやっていきましょう。
.htaccessファイルの編集のポイントは以下です。再度、確認しましょう。
- .htaccessファイルを編集する前にバックアップをとる
- リダイレクトのための追加設定は既存設定の上部に追加する
- .htaccessファイルの最後の行は改行だけの空行にする
リダイレクトの設定がまだだった方は、是非設定を行っておきましょう!
コメント