Використання mod_rewrite не є рекомендованим способом, натомість використовувати віртуальний хост і переспрямувати.
У випадку, якщо ви схильні робити це за допомогою mod_rewrite:
RewriteEngine On
# This will enable the Rewrite capabilities
RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
# This rule will redirect users from their original location, to the same
location but using HTTPS.
# i.e. http://www.example.com/foo/ to https://www.example.com/foo/
# The leading slash is made optional so that this will work either in
# httpd.conf or .htaccess context
Довідка: Httpd Wiki - ПерепишітьHTTPToHTTPS
Якщо ви шукаєте постійну переадресацію 301, прапор переадресації має бути таким,
R=301
тому RewriteRule буде подібний,
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]