Sus condiciones son implícitamente AND y su segunda condición siempre será verdadera (a menos que tenga otros dominios), por lo que sus reglas actuales solo redirigirán el tráfico que no sea SSL.
Necesita OR
las condiciones y negar la www
(segunda) condición:
RewriteEngine On
RewriteCond %{SERVER_PORT} !=443 [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Si SERVER_PORT
no es 443 (es decir, no es HTTPS) o el host no comienza con www.
(es decir, está accediendo al dominio desnudo), entonces redirija a la URL canónica.
Sin embargo, si esto va a redirigir https://example.com
a https://www.example.com
dependerá de su certificado de seguridad. (Su sitio debe ser accesible tanto por www como por no www a través de SSL para que la redirección .htaccess se active).
http://example.com
(es decir, HTTP y no www), ya que primero redirigirá a HTTPS en el mismo host (es decir, sinwww
) y luego redirigirá awww
una segunda redirección. Puede corregir esto simplemente invirtiendo estas dos reglas.