From f65c25dd95f5507518b544ccfa1c0efbe036bb32 Mon Sep 17 00:00:00 2001 From: Jan Henckens Date: Mon, 9 Dec 2024 18:36:26 +0100 Subject: [PATCH 1/3] Check if we have a full url to redirect to --- src/services/NotFoundService.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/services/NotFoundService.php b/src/services/NotFoundService.php index 48cb4e2..1c4cf31 100644 --- a/src/services/NotFoundService.php +++ b/src/services/NotFoundService.php @@ -122,15 +122,20 @@ private function getMatchingRedirect(NotFoundModel $model): RedirectRecord|array $regexRedirects = $this->getAllRegexRedirects($model); foreach ($regexRedirects as $regexRedirect) { $pattern = '`' . $regexRedirect->pattern . '`i'; - if (preg_match( - $pattern, - $model->urlPath - ) === 1) { - $parsedUrl = preg_replace($pattern, $regexRedirect->redirect, $model->fullUrl); - return ["record" => $regexRedirect, "url" => $parsedUrl]; + + if(str_contains($regexRedirect->redirect, 'http')) { + $url = $model->urlPath; + } else { + $url = $model->fullUrl; } - } + if (preg_match($pattern, $model->urlPath, $matches)) { + // Replace placeholders ($1, $2, etc.) with actual captured groups + $finalRedirectUrl = preg_replace($pattern, $regexRedirect->redirect, $url); + return ["record" => $regexRedirect, "url" => $finalRedirectUrl]; + } + + } return false; } From 4f89e1f9464119a8894b6f8d94d98dc9add73c9c Mon Sep 17 00:00:00 2001 From: Jan Henckens Date: Mon, 23 Dec 2024 14:06:38 +0100 Subject: [PATCH 2/3] Run CI on PR --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c043d29..04ddc0e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,7 @@ name: ci on: workflow_dispatch: + pull_request: push: branches: - develop From a254987309edc63254b0160c6c5e6a60006cb9a3 Mon Sep 17 00:00:00 2001 From: Jan Henckens Date: Mon, 23 Dec 2024 14:07:15 +0100 Subject: [PATCH 3/3] CS fixes --- src/services/NotFoundService.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/services/NotFoundService.php b/src/services/NotFoundService.php index 1c4cf31..ef7c035 100644 --- a/src/services/NotFoundService.php +++ b/src/services/NotFoundService.php @@ -123,7 +123,7 @@ private function getMatchingRedirect(NotFoundModel $model): RedirectRecord|array foreach ($regexRedirects as $regexRedirect) { $pattern = '`' . $regexRedirect->pattern . '`i'; - if(str_contains($regexRedirect->redirect, 'http')) { + if (str_contains($regexRedirect->redirect, 'http')) { $url = $model->urlPath; } else { $url = $model->fullUrl; @@ -134,7 +134,6 @@ private function getMatchingRedirect(NotFoundModel $model): RedirectRecord|array $finalRedirectUrl = preg_replace($pattern, $regexRedirect->redirect, $url); return ["record" => $regexRedirect, "url" => $finalRedirectUrl]; } - } return false; }