Я добавил это в .htaccess
для перенаправления HTTP на HTTPS:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Это работает, но искажает аргументы GET. Например, URL-адрес http://example.com/?a=b%20c
превращается в http://example.com/?a=b%2520c
.
Как я могу исправить это правило, чтобы аргументы GET оставались неизменными?
Попробуй это
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1 [R=301,QSA,L]
$ 1 - это все в REQUEST_URI, а флаг QSA добавит существующую строку запроса (переменные GET) к новому URL-адресу.
Просто используйте это:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]