.htaccessを使ってHTTPへのアクセスをHTTPSにリダイレクトする方法を紹介します。
Googleも常時SSL化を推奨していますし、サイト全体がSSL化されているサイトも増えましたよね。ECサイトではSSL(HTTPS)の導入は必須ですし、結構活用できるシーンは多いかと思います。
全ページをHTTPSにリダイレクトする
全ページをHTTPSにリダイレクトするには、.htaccessに以下を追加します。
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
HTTPでアクセスしてきてもHTTPSにリダイレクトされます。
特定のページをHTTPSにリダイレクトする
全ページではなく、一部のページをHTTPSにリダイレクトしたい場合は、以下のように記述します。
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]
少し面倒ですが、HTTPSにリダイレクトしたいページをそれぞれRewriteCondで指定していきます。
上記では、WordPressの管理画面とログインページ、お問い合わせページをHTTPSへリダイレクトするよう指定しています。
あとがき
うまくリダイレクトされない時は、.htaccess内の記述場所を変えてみてください。前半の方に記述しておかないと、他のRewriteRuleとの兼ね合いでちゃんと動かない場合があります。