This is what I put in mine, and it seems to work pretty well for the most part....
rewriteengine on
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} mywebsite\.com [NC]
RewriteRule ^(.*)$
https://www.mywebsite.com/$1 [R=301,L]
rewritecond %{HTTP_HOST} ^
www.mywebsite.com$ [OR]
rewritecond %{HTTP_HOST} ^mywebsite.com$
rewriterule ^index\.html$ "https\:\/\/www\.mywebsite\.com\/" [R=301,L]
rewritecond %{HTTP_HOST} ^mywebsite.com$
rewriterule ^(.*)$ "https\:\/\/www\.mywebsite\.com\/$1" [R=301,L]
RewriteCond %{HTTP_HOST} ^000\.000\.00\.000
RewriteRule (.*)
https://www.mywebsite.com/$1 [R=301,L]
RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* ? [F,L]
ErrorDocument 404 /index.html
AddType 'text/html; charset=UTF-8' html
# DISABLE CACHING
<IfModule mod_headers.c>
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
# Images
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
# Video
ExpiresByType video/mp4 "access plus 1 year"
ExpiresByType video/mpeg "access plus 1 year"
# CSS, JavaScript
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
# Others
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
</IfModule>