อธิบายทีละบรรทัดเลยแล้วกัน ซึ่งจริง ๆ ทั้ง 3 ตัวอย่างที่ว่ามาก็ความหมายเดียวกัน ต่างกันเพียงการเขียน และรายละเอียดนิดหน่อย
RewriteEngine On > แจ้งให้ Web Server รู้ว่ามีการใช้งาน mod_rewrite.c
RewriteCond %{HTTPS} !=on > เช็คว่า ถ้า Protocol ปัจจุบันไม่ใช่ HTTPS (ค่า !=on หมายความว่าไม่ใช่ https)
หรือ
RewriteCond %{HTTPS} off > เช็คว่า ถ้า Protocol ปัจจุบันไม่ใช่ HTTPS (off ความหมายเดียวกันกับ !=on)
RewriteRule ^(.*)$
https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] > หมายถึงขึ้นต้น และลงท้ายด้วยอะไรก็ตาม ให้เปลี่ยนทางไปที่ https://%โฮสต์%ไฟล์ที่เรียก [กฏสุดท้าย,เปลี่ยนทางแบบถาวร]
บรรทัดสุดท้ายแนะนำให้ใช้แบบ R=301 เพื่อแจ้งให้เปลี่ยนทางถาวร ไม่งั้นจะเกิด duplicate content กับ http อีก