From 3e329a24cb9d7b0a4008d4b90014012234c019c8 Mon Sep 17 00:00:00 2001 From: Will Rossiter Date: Wed, 23 Jun 2021 14:19:41 +1200 Subject: [PATCH] FIX Don't rely on _SERVER values for redirect Related issue: https://github.com/silverstripe/silverstripe-sharedraftcontent/pull/144 If a redirection is handled internally (such as the linked shareddraftcontent module) then the $_SERVER properties aren't updated directly, but are via the `Environment` API. --- src/Middleware/TrailingSlashRedirector.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Middleware/TrailingSlashRedirector.php b/src/Middleware/TrailingSlashRedirector.php index 932226f..8930ac9 100644 --- a/src/Middleware/TrailingSlashRedirector.php +++ b/src/Middleware/TrailingSlashRedirector.php @@ -1,4 +1,5 @@ getURL(), '/' @@ -94,8 +103,11 @@ public function process(HTTPRequest $request, callable $delegate) $params = $request->getVars(); $redirect_url = Controller::join_links($expected_url, '/'); $response = new HTTPResponse(); - - return $response->redirect($redirect_url, 301); + $code = Config::inst()->get( + TrailingSlashRedirector::class, + 'redirection_status_code' + ); + return $response->redirect($redirect_url, $code); } }