Fix incorrect parameter encoding when using URLs rewriting

A parameter with quotes or other special characters should be url encoded.

Incorrect encoding could happen when using search queries like this one:

modified:">=2023-04-01"
This commit is contained in:
Frédéric Guillot
2023-04-19 21:10:34 -07:00
committed by Frédéric Guillot
parent d3f38d1bf2
commit 463dfbf4fe
2 changed files with 11 additions and 1 deletions

View File

@@ -101,7 +101,7 @@ class Route extends Base
for ($i = 0; $i < $count; $i++) {
if ($route['items'][$i][0] === ':') {
$params[substr($route['items'][$i], 1)] = $items[$i];
$params[substr($route['items'][$i], 1)] = urldecode($items[$i]);
} elseif ($route['items'][$i] !== $items[$i]) {
break;
}
@@ -152,6 +152,7 @@ class Route extends Base
$i = 0;
foreach ($params as $variable => $value) {
$value = urlencode($value);
$url = str_replace(':'.$variable, $value, $url);
$i++;
}