this is a working example... for doing it the 'other way'... forcing https and no 'www'.
Code:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
#Second Force HTTPS via redirect/rewrite
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
I think if you use mine as a template you will get working as you desire.... as yours stands apache has no way to know that 'https://domain.tld' exists... it seems to be refering it back into a loop so it tells you it failed.
take note of the ".*"[dot*]
try this code for your line that looks similiar:(the last line)
Code:
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]