Use isso:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Adicionei isso a .htaccess
para redirecionar HTTP para HTTPS:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Funciona, mas resulta em argumentos GET. Por exemplo, uma url de http://example.com/?a=b%20c
se transforma em http://example.com/?a=b%2520c
.
Como posso corrigir essa regra para manter os argumentos GET intactos?
Use isso:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Tente isso
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1 [R=301,QSA,L]
O $ 1 é tudo no REQUEST_URI e o sinalizador do QSA anexará a string de consulta existente (as GET vars) ao novo URL.
Tags mod-rewrite apache-2.2