From f893c9b687ddf0ea1d448714cda2d2362c80d567 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Viktor=20Sz=C3=A9pe?= Date: Tue, 19 Sep 2023 17:53:28 +0000 Subject: [PATCH] Fix query string encoding in core-http-reencode-not-encoded-characters --- Plugins.md | 2 +- mu-plugins/_core-http-reencode-not-encoded-characters.php | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Plugins.md b/Plugins.md index 71e201f..6dbb4a7 100644 --- a/Plugins.md +++ b/Plugins.md @@ -202,7 +202,7 @@ MU Plugin Template */ ``` -See [/mu-plugins/](/mu-plugins/) directory for its content. +See [/mu-plugins/](/mu-plugins/) directory for MU plugins. ## Plugin authors with enterprise mindset diff --git a/mu-plugins/_core-http-reencode-not-encoded-characters.php b/mu-plugins/_core-http-reencode-not-encoded-characters.php index 391f8b2..065e520 100644 --- a/mu-plugins/_core-http-reencode-not-encoded-characters.php +++ b/mu-plugins/_core-http-reencode-not-encoded-characters.php @@ -20,8 +20,9 @@ add_action( // * character from Google Analytics $query_parameters = []; parse_str($parsed_url['query'], $query_parameters); - $query_string = http_build_query($query_parameters, '', '&', PHP_QUERY_RFC3986); - $request_uri .= '?' . $query_string; + // RFC 3986 + $request_uri = add_query_arg(rawurlencode_deep($query_parameters), $request_uri); + $query_string = ltrim(add_query_arg(rawurlencode_deep($query_parameters), ''), '?'); } $_SERVER['REQUEST_URI'] = $request_uri;