From 2074c4933a0f86cd601b31beb340ded2f77d58d3 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Mon, 24 Apr 2017 17:57:47 -0600 Subject: [PATCH] Force redirect/route matching from start of route #1446 --- CHANGELOG.md | 6 ++++++ system/src/Grav/Common/Page/Pages.php | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e4599da1..48dc6d2f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# v1.2.5 +## 04/xx/2017 + +1. [](#bugfix) + * Fix to force route/redirect matching from the start of the route by default [1446](https://github.com/getgrav/grav/issues/1446) + # v1.2.4 ## 04/24/2017 diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php index 457701ce3..1ba80fdd4 100644 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -405,7 +405,7 @@ class Pages $site_redirects = $config->get("site.redirects"); if (is_array($site_redirects)) { foreach ((array)$site_redirects as $pattern => $replace) { - $pattern = '#' . $pattern . '#'; + $pattern = '#^' . preg_quote(ltrim($pattern, '^')) . '#'; try { $found = preg_replace($pattern, $replace, $source_url); if ($found != $source_url) { @@ -421,7 +421,7 @@ class Pages $site_routes = $config->get("site.routes"); if (is_array($site_routes)) { foreach ((array)$site_routes as $pattern => $replace) { - $pattern = '#' . $pattern . '#'; + $pattern = '#^' . preg_quote(ltrim($pattern, '^')) . '#'; try { $found = preg_replace($pattern, $replace, $source_url); if ($found != $source_url) {