Kondisi Anda secara implisit DAN akan dan kondisi kedua Anda akan selalu benar (kecuali jika Anda memiliki domain lain), sehingga aturan Anda saat ini hanya akan mengarahkan lalu lintas non-SSL.
Anda perlu ORkondisi dan meniadakan kondisi www(kedua):
RewriteEngine On
RewriteCond %{SERVER_PORT} !=443 [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Jika SERVER_PORTbukan 443 (mis. Bukan HTTPS) atau host tidak memulai dengan www.(mis. Anda mengakses domain kosong) maka arahkan ke URL kanonik.
Namun, apakah ini akan dialihkan https://example.comke https://www.example.comakan tergantung pada sertifikat keamanan Anda. (Situs Anda harus dapat diakses oleh www dan non-www melalui SSL agar pemicu .htaccess diarahkan.)
http://example.com(mis. HTTP dan non-www), karena ini akan mengarahkan ulang ke HTTPS pada host yang sama (mis. Tanpawww) dan kemudian mengarahkan kembaliwwwsebagai pengalihan kedua. Anda dapat memperbaikinya dengan hanya membalik kedua aturan ini.