Using this rule in a virtual host configuration file leads to double escaping of the query parameters:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
For example:
http://example.com?f=hello%20world
Leads to
https://example.com?f=hello%2520world
Note the "%25" escaping the "%" sign. Why is this happening ?
Try to add the [NE] (noescape) tag at the end of the rewrite rule:
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NE]
This happens because &
and ?
and some others are escaped by default in the rewrite process.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With