From 7367ad2645351f29e26390c06a29f9eba2e09645 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Fri, 13 Aug 2021 15:55:56 +0900 Subject: [PATCH] Support HTTP status codes 301, 302, 303, 307, 308 when setting redirect URL --- classes/module/ModuleHandler.class.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 72970365d..28dadde94 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -1005,7 +1005,17 @@ class ModuleHandler extends Handler else { ob_end_clean(); - header('location: ' . $oModule->getRedirectUrl()); + if (in_array($oModule->getHttpStatusCode(), [301, 303, 307, 308])) + { + self::_setHttpStatusMessage($oModule->getHttpStatusCode()); + } + else + { + self::_setHttpStatusMessage(302); + } + header(sprintf('HTTP/1.1 %d %s', Context::get('http_status_code'), Context::get('http_status_message'))); + header(sprintf('Location: %s', $oModule->getRedirectUrl())); + Context::setCacheControl(0); return; } }