サイトアイコン IT NEWS

htaccessですべてのページをhttpsに301リダイレクトする方法

htaccess

前回の記事でWebサーバーSSLに対応したので、httpからhttpsにリダイレクトさせてみる。

WordPressをhttpsリダイレクト

まずは、WordPressを利用している当ブログをhttpsリダイレクトしてみよう!
WordPressを利用している場合、「設定」>「一般」にある以下の項目を「https」に変更する。

しかし、これだけでは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から始まるCSSJavaScriptの読み込みが混在していることで、ブラウザの読み込みエラーが大量発生していた。
なので、今度はcssjs画像(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」で十分だろう。

Really Simple SSL


他にも細かく設定できるプラグインもあるが、どちらにしろ設定はしなければなりません。
ちなみに、SEO的には301リダイレクトした方が良いらしい。
リダイレクトチェックツールがあるので参考までに。

モバイルバージョンを終了