Você geralmente pode fazer o HTTP - > Redirecionamento de HTTPS usando apenas mod_rewrite:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Geralmente, é melhor usar %{REQUEST_URI}
vs. $1
.
Se, no entanto, você não quiser usar o mod_rewrite, ou não tiver esse módulo do Apache à sua disposição, você pode usar o redirecionamento da seguinte forma:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mysite.example.com
DocumentRoot /usr/local/apache2/htdocs
Redirect permanent / https://mysite.example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName mysite.example.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
# etc...
</VirtualHost>