前回の記事でWebサーバーがSSLに対応したので、httpからhttpsにリダイレクトさせてみる。
WordPressをhttpsリダイレクト
まずは、WordPressを利用している当ブログをhttpsにリダイレクトしてみよう!
WordPressを利用している場合、「設定」>「一般」にある以下の項目を「https」に変更する。
- WordPress アドレス (URL)
- サイトアドレス (URL)
しかし、これだけではhttp側にもアクセスできてしまうので、プラグインやhtaccessを利用してhttpsにリダイレクトさせる必要がある。
何を使うか少し迷ったが、当初は/wp-admin
や/contact
など特定のURLに絞ってhttpsへリダイレクトさせたかったため、htaccessで変更することにした。
特定のURLのみリダイレクトさせる方法
RewriteEngine On
RewriteCond %{REQUEST_URI} .*/wp-login.php.*$ [OR]
RewriteCond %{REQUEST_URI} .*/wp-admin/.*$ [OR]
RewriteCond %{REQUEST_URI} .*/contact.*$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
ところが設定してみると、上記以外のURLでもhttpsになること、逆の条件を書き足したらできたと思いきや、管理画面でレイアウトが崩れていた。
原因は、httpsの中にhttpから始まるCSSやJavaScriptの読み込みが混在していることで、ブラウザの読み込みエラーが大量発生していた。
なので、今度はcssやjs、画像(jpg、png、gif)ファイルの設定も追加してあげないといけない…。さすがに面倒なので、オールhttpsにすることで最終的に落ち着いた。
Google先生もSSL化を推奨しているようで、SEO的にも効果があるとかないとか。
すべてのページをhttpsへリダイレクト
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
WordPressのプラグインを使う
WordPressのプラグインを使うなら、名前の通りシンプルな「Really Simple SSL」で十分だろう。
他にも細かく設定できるプラグインもあるが、どちらにしろ設定はしなければなりません。
ちなみに、SEO的には301でリダイレクトした方が良いらしい。
リダイレクトチェックツールがあるので参考までに。
- Original:https://minory.org/htaccess-301-redirect.html
- Source:Minory
- Author:管理者