I want to redirect:
https://example.com => https://www.example.com [not working]
http://example.com => https://www.example.com [not working]
www.example.com => https://www.example.com [working]
example.com => https://www.example.com [working]
.htaccess
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
Virtualhost
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/test/public_html
ErrorLog /var/www/test/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost _default_:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/test/public_html
ErrorLog /var/www/test/error.log
SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/test.key
SSLCertificateFile /etc/apache2/ssl/test.crt
</VirtualHost>