Использование этого правила в файле конфигурации виртуального хоста приводит к двойному экранированию параметров запроса:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Например:
http://example.com?f=hello%20world
Приводит к
https://example.com?f=hello%2520world
Обратите внимание, что "% 25" экранирует знак "%".Почему это происходит?
Попробуйте добавить тег [NE] (noescape) в конце правила перезаписи:
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NE]
Это происходит потому, что & и ? и некоторые другиепо умолчанию экранируются в процессе перезаписи.
&
?