I recently had just that, on one site I administer.
Site is behind CloudFlare, which causes that issue. I used this to be able to force https:
Code:
RewriteEngine On
# If we receive a forwarded http request from a proxy...
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]
# ...or just a plain old http request directly from the client
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTPS} !=on
# Redirect to https version
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Found solution here:
https://stackoverflow.com/questions/...to-force-https
Not sure will it help you, as I always had "too many redirects" when I tried to force https. This is only thing that worked.