一部のレンタルサーバーではApacheの設定などによって.htaccessからHTTPSという環境変数を取得できない場合があります
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
一般的なサーバーでは常時SSLは上記のコードだけで実装できますが%{HTTPS}でSSLが有効かどうか取得出来ないサーバーではリダイレクトが繰り返し行わたりして危ないです
RewriteEngine On
RedirectMatch 301 ^http://(.*)$ https://$1
そんな人には上記の方法をオススメします
http://ならhttps://にリダイレクトさせるという方法です
いいやり方か知りませんがこの方法くらいしか思いつかなかったし調べても出てこなかったのでとりあえずこれでいいと思います