From aa8f764436acc15431c5b756bdcb1ace00df3364 Mon Sep 17 00:00:00 2001 From: ale rimoldi Date: Mon, 12 Aug 2019 23:11:41 +0200 Subject: [PATCH] run route.php when grav is not at the root of the server (#2541) --- system/router.php | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/system/router.php b/system/router.php index 9ab055892..9d4498144 100644 --- a/system/router.php +++ b/system/router.php @@ -17,11 +17,25 @@ if (is_file($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . $_SERVER['SCRIPT_N return false; } +$gravBasedir = getenv('GRAV_BASEDIR'); +if ($gravBasedir === false) { + $gravBasedir = ''; +} else { + $gravBasedir = DIRECTORY_SEPARATOR . trim($gravBasedir, DIRECTORY_SEPARATOR); + // tell system/defines.php not to use the default GRAV_ROOT + define('GRAV_ROOT', str_replace(DIRECTORY_SEPARATOR, '/', getcwd()). $gravBasedir); + +} + $_SERVER = array_merge($_SERVER, $_ENV); -$_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'index.php'; -$_SERVER['SCRIPT_NAME'] = DIRECTORY_SEPARATOR . 'index.php'; -$_SERVER['PHP_SELF'] = DIRECTORY_SEPARATOR . 'index.php'; +$_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'] . $gravBasedir .DIRECTORY_SEPARATOR . 'index.php'; +$_SERVER['SCRIPT_NAME'] = $gravBasedir . DIRECTORY_SEPARATOR . 'index.php'; +$_SERVER['PHP_SELF'] = $gravBasedir . DIRECTORY_SEPARATOR . 'index.php'; error_log(sprintf('%s:%d [%d]: %s', $_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_PORT'], http_response_code(), $_SERVER['REQUEST_URI']), 4); -require 'index.php'; +if ($gravBasedir === '') { + require 'index.php'; +} else { + require ltrim($gravBasedir, '/') . DIRECTORY_SEPARATOR . 'index.php'; +}