SSL対応していないサイトは年々肩身が狭くなる昨今のウェブ界隈ですが、最近では常時SSL対応したウェブサイトが多くなってきてネットリテラシーが増してきたのではと実感しています。
さて、無事に常時SSL化してURLに立派な錠前マークが付いたと嬉々としているとある疑問に気づいきます。
「これ、httpでアクセスしたらどうなるんだろう?」
そう、常時SSL対応したページのURLをいじってhttpsからhttpにアクセスしてみると…アクセス出来てしまうんですね!そりゃまぁ、そうなんですけどなんか気持ち悪いし、過去Googleがhttpのページを拾ってしまう現象もありましたし、せっかく常時SSL対応させたんだからhttpでアクセスされてもhttpsにリダイレクトさせたい。というわけで.htaccessを制御してスムーズにhttpsにリダイレクトさせます。
.htaccessにhttpでのアクセスをhttpsへリダイレクトさせるように設定する
設定内容はサーバーごと違いますので各レンタルサーバー会社の.htaccessの記述法をご確認ください。私はsakuraサーバーをレンタルしているのでhtaccessに下記を記述します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
.htaccessによるアクセス制御[SAKURA internet]
WordPressの.htaccessの記述法
私はWordPressでの.htaccessの設定法で苦戦しました。というのもThemeディテクトリに.htaccessを作っていしまいリダイレクト出来ませんでした。原因はインストールしたサーバーの直下、すなわちルートディレクトリに既にデフォルトで.htaccessが設置してあったのです。これが優先されてしまうのでThemeディレクトリではなくこちらに.htaccessに記述するのですね。
トップページはリダイレクトされるのに下層ページはリダイレクトされない
さあ、リダイレクト成功!とテスト中にある現象に気付きました。トップページは無事リダイレクトされましたが、ブログのページなどの下層ページすべてはhttpsへリダイレクトされずhttpのままでした。
原因はルートディレクトリにある.htaccessの記述の順番です。この.htaccessには# BEGIN WordPress〜# END WordPressで囲まれた箇所があると思います。これの前に書いてください。後だと下層ページだけリダイレクトされない現象が発生します。
WordPressの常時SSL化では、.htaccessの順序に注意!
無事成功!
こんな感じでhttpでアクセスしても下層ページでもhttpsへリダイレクトされます。
うまくいかないならプラグインを使う手も
この設定をする前はこのサイトはhttpsへのリダイレクトをプラグインで設定してました。私は開発者なのでいつまでもリダイレクトをプラグインに頼るのも嫌だなと思い自分で設定した次第ですが、そうでもない方はプラグインでやるのも手ですね。私は過去Really Simple SSLを使っていました。
sakuraサーバーなら公式が下記のプラグインをsakura公式が配布しています。
まとめ
最近はSSL対応は常時SSLというすべてのページに対して暗号化するのに対して、以前は部分SSLという問い合わせフォームや注文フォーム関連のページのみを暗号化させる手法が主流でしたが昨今のスマートフォンでどこからでもWifiでアクセス出来るようになった為、セキュリティの面でも常時SSLが主流になってきましたね。
2018年にはGoogleChromeをはじめ各種ブラウザーもSSLに対応していないページはURL表示部に「安全ではありません」というメッセージが表示され早急の常時SSL対応を感じます。(スマートフォンでアクセスすると「安全ではありません」という文字でURL入力欄が溢れ、安全ではない感がすごいです)2020年には混合コンテンツ(httpやhttpが混ざっているサイト)のサイトでhttpsのサイトが直リンクなどでhttpで読み込んでいる画像が表示されなくなるなどのペナルティがされ、年々常時SSL化への促しが強くなっていますね。
コメント