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 OR
kondisi 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_PORT
bukan 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.com
ke https://www.example.com
akan 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 kembaliwww
sebagai pengalihan kedua. Anda dapat memperbaikinya dengan hanya membalik kedua aturan ini.