Redirecionar para SSL sem apresentar argumentos GET incorretos

2

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?

    
por Ram Rachum 14.04.2014 / 17:06

2 respostas

0

Use isso:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
por 14.04.2014 / 17:27
0

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.

    
por 14.04.2014 / 23:58