Essa é uma boa maneira de forçar todo o tráfego do seu site a usar HTTPS, enquanto permite que as pessoas que se esquecem do ‘s’ no HTTPS ainda cheguem ao seu site. Finja que está /etc/apache2/sites-available/example.com
em um sistema Debian.
<VirtualHost *:80>
ServerName example.com
<Location />
Redirect permanent / https://example.com/
</Location>
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
DocumentRoot /home/example/example.com
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/example.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/example.com.key
SSLCertificateChainFile /etc/apache2/ssl/example.com.ca-bundle
</VirtualHost>
Como você pode ver, a primeira definição do VirtualHost captura todo o tráfego que chega na porta 80 para o domínio example.com e o encaminha para a porta 443. Fácil!