From 402d45d4907c3cae20848e8e07395976267c65ee Mon Sep 17 00:00:00 2001 From: Philipp Date: Sat, 18 Feb 2023 20:47:52 +0100 Subject: [PATCH] Move force_ssl behavior --- index.php | 3 ++- src/App.php | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/index.php b/index.php index 34952afcb..90df9c00e 100644 --- a/index.php +++ b/index.php @@ -48,5 +48,6 @@ $a->runFrontend( $dice->create(\Friendica\Content\Nav::class), $dice->create(Friendica\Module\Special\HTTPException::class), new \Friendica\Util\HTTPInputData($_SERVER), - $start_time + $start_time, + $_SERVER ); diff --git a/src/App.php b/src/App.php index 9df62a4e7..792df0f74 100644 --- a/src/App.php +++ b/src/App.php @@ -555,11 +555,12 @@ class App * @param ModuleHTTPException $httpException The possible HTTP Exception container * @param HTTPInputData $httpInput A library for processing PHP input streams * @param float $start_time The start time of the overall script execution + * @param array $server The $_SERVER array * * @throws HTTPException\InternalServerErrorException * @throws \ImagickException */ - public function runFrontend(App\Router $router, IManagePersonalConfigValues $pconfig, Authentication $auth, App\Page $page, Nav $nav, ModuleHTTPException $httpException, HTTPInputData $httpInput, float $start_time) + public function runFrontend(App\Router $router, IManagePersonalConfigValues $pconfig, Authentication $auth, App\Page $page, Nav $nav, ModuleHTTPException $httpException, HTTPInputData $httpInput, float $start_time, array $server) { $this->profiler->set($start_time, 'start'); $this->profiler->set(microtime(true), 'classinit'); @@ -575,10 +576,12 @@ class App if (!$this->mode->isInstall()) { // Force SSL redirection - if ($this->baseURL->checkRedirectHttps()) { - System::externalRedirect($this->baseURL->get() . '/' . $this->args->getQueryString()); + if ($this->config->get('system', 'force_ssl') && + (empty($server['HTTPS']) || $server['HTTPS'] === 'off') && + !empty($server['REQUEST_METHOD']) && + $server['REQUEST_METHOD'] === 'GET') { + System::externalRedirect($this->baseURL . '/' . $this->args->getQueryString()); } - Core\Hook::callAll('init_1'); }