diff --git a/application/Espo/EntryPoints/Portal.php b/application/Espo/EntryPoints/Portal.php index 66ed90671e..91a188322e 100644 --- a/application/Espo/EntryPoints/Portal.php +++ b/application/Espo/EntryPoints/Portal.php @@ -44,7 +44,9 @@ class Portal extends \Espo\Core\EntryPoints\Base } else if (!empty($data['id'])) { $id = $data['id']; } else { - $id = explode('/', $_SERVER['REQUEST_URI'])[count(explode('/', $_SERVER['SCRIPT_NAME'])) - 1]; + $url = !empty($_SERVER['REDIRECT_URL']) ? $_SERVER['REDIRECT_URL'] : $_SERVER['REQUEST_URI']; + + $id = explode('/', $url)[count(explode('/', $_SERVER['SCRIPT_NAME'])) - 1]; if (!$id) { $id = $this->getConfig()->get('defaultPortalId'); } diff --git a/portal/index.php b/portal/index.php index da5b83cfb3..f3d606aa52 100644 --- a/portal/index.php +++ b/portal/index.php @@ -34,7 +34,9 @@ if (!$app->isInstalled()) { exit; } -$a = explode('?', $_SERVER['REQUEST_URI']); +$url = !empty($_SERVER['REDIRECT_URL']) ? $_SERVER['REDIRECT_URL'] : $_SERVER['REQUEST_URI']; + +$a = explode('?', $url); if (substr($a[0], -1) !== '/') { $url = $a[0] . '/'; if (count($a) > 1) { @@ -44,7 +46,7 @@ if (substr($a[0], -1) !== '/') { exit(); } -$portalId = explode('/', $_SERVER['REQUEST_URI'])[count(explode('/', $_SERVER['SCRIPT_NAME'])) - 1]; +$portalId = explode('/', $url)[count(explode('/', $_SERVER['SCRIPT_NAME'])) - 1]; if ($portalId) { $app->setBasePath('../../'); } else {