From 1614b310ef0e4871dc5f21630e887010e0fb22bc Mon Sep 17 00:00:00 2001 From: Felix Epp Date: Sat, 1 Oct 2016 12:17:55 +0200 Subject: Add system config htaccess.IgnoreFrontController for prettyURLs w/o mod_env Added the system config which sets all conditions to true that query the FrontControllerActive mod_env variable. Signed-off-by: Felix A. Epp --- lib/private/Route/Router.php | 3 ++- lib/private/Template/JSConfigHelper.php | 2 +- lib/private/URLGenerator.php | 3 ++- lib/private/legacy/util.php | 7 ++++--- 4 files changed, 9 insertions(+), 6 deletions(-) (limited to 'lib/private') diff --git a/lib/private/Route/Router.php b/lib/private/Route/Router.php index 59f403d66e8..fd15400dad4 100644 --- a/lib/private/Route/Router.php +++ b/lib/private/Route/Router.php @@ -4,6 +4,7 @@ * * @author Bart Visscher * @author Bernhard Posselt + * @author Felix Anand Epp * @author Joas Schilling * @author Jörn Friedrich Dreyer * @author Lukas Reschke @@ -71,7 +72,7 @@ class Router implements IRouter { public function __construct(ILogger $logger) { $this->logger = $logger; $baseUrl = \OC::$WEBROOT; - if(!(getenv('front_controller_active') === 'true')) { + if(!(\OC::$server->getConfig()->getSystemValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true')) { $baseUrl = \OC::$server->getURLGenerator()->linkTo('', 'index.php'); } if (!\OC::$CLI) { diff --git a/lib/private/Template/JSConfigHelper.php b/lib/private/Template/JSConfigHelper.php index a7f8c251cee..0993663fef9 100644 --- a/lib/private/Template/JSConfigHelper.php +++ b/lib/private/Template/JSConfigHelper.php @@ -189,7 +189,7 @@ class JSConfigHelper { 'versionstring' => \OC_Util::getVersionString(), 'enable_avatars' => $this->config->getSystemValue('enable_avatars', true) === true, 'lost_password_link'=> $this->config->getSystemValue('lost_password_link', null), - 'modRewriteWorking' => (getenv('front_controller_active') === 'true'), + 'modRewriteWorking' => (\OC::$server->getConfig()->getSystemValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true'), ]), "oc_appconfig" => json_encode([ 'core' => [ diff --git a/lib/private/URLGenerator.php b/lib/private/URLGenerator.php index 93517dc9f7e..1b8dfd70bde 100644 --- a/lib/private/URLGenerator.php +++ b/lib/private/URLGenerator.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bart Visscher + * @author Felix Anand Epp * @author Joas Schilling * @author Jörn Friedrich Dreyer * @author Lukas Reschke @@ -93,7 +94,7 @@ class URLGenerator implements IURLGenerator { * Returns a url to the given app and file. */ public function linkTo( $app, $file, $args = array() ) { - $frontControllerActive = (getenv('front_controller_active') === 'true'); + $frontControllerActive = ($this->config->getSystemValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true'); if( $app != '' ) { $app_path = \OC_App::getAppPath($app); diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php index 3bd5b5586ab..cc665b5ec65 100644 --- a/lib/private/legacy/util.php +++ b/lib/private/legacy/util.php @@ -14,6 +14,7 @@ * @author Christoph Wurst * @author Clark Tomlinson * @author cmeh + * @author Felix Anand Epp * @author Florin Peter * @author Frank Karlitschek * @author Georg Ehrke @@ -524,7 +525,7 @@ class OC_Util { * * @param string $application application id * @param string $languageCode language code, defaults to the current language - * @param bool $prepend prepend the Script to the beginning of the list + * @param bool $prepend prepend the Script to the beginning of the list */ public static function addTranslations($application, $languageCode = null, $prepend = false) { if (is_null($languageCode)) { @@ -569,7 +570,7 @@ class OC_Util { * * @param string $application application id * @param bool $prepend prepend the file to the beginning of the list - * @param string $path + * @param string $path * @param string $type (script or style) * @return void */ @@ -1076,7 +1077,7 @@ class OC_Util { } } - if(getenv('front_controller_active') === 'true') { + if(\OC::$server->getConfig()->getSystemValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true') { $location = $urlGenerator->getAbsoluteURL('/apps/' . $appId . '/'); } else { $location = $urlGenerator->getAbsoluteURL('/index.php/apps/' . $appId . '/'); -- cgit v1.2.3