diff options
author | icewind1991 <robin@icewind.nl> | 2014-04-07 16:53:44 +0400 |
---|---|---|
committer | icewind1991 <robin@icewind.nl> | 2014-04-07 16:53:44 +0400 |
commit | d3eee0119090623052e00ff7df52eeeacfbd8f85 (patch) | |
tree | db3f8407cd16aa8f869eb4c7a8f616424d9d5182 | |
parent | 0fe32eee1316e6614c79709e88d9be62fc8252dd (diff) | |
parent | 0f1374c02882df35c8c6142455ce0961ad0b6643 (diff) |
Merge pull request #7599 from owncloud/public-pathinfo
Allow using pathinfo based public.php paths
-rw-r--r-- | public.php | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/public.php b/public.php index e072db93d29..dfdd4c52af9 100644 --- a/public.php +++ b/public.php @@ -5,24 +5,32 @@ try { require_once 'lib/base.php'; OC::checkMaintenanceMode(); OC::checkSingleUserMode(); - if (!isset($_GET['service'])) { + $pathInfo = OC_Request::getPathInfo(); + if (!$pathInfo && !isset($_GET['service'])) { header('HTTP/1.0 404 Not Found'); exit; + } elseif ($_GET['service']) { + $service = $_GET['service']; + } else { + $pathInfo = trim($pathInfo, '/'); + list($service) = explode('/', $pathInfo); } - $file = OCP\CONFIG::getAppValue('core', 'public_' . strip_tags($_GET['service'])); - if(is_null($file)) { + $file = OCP\CONFIG::getAppValue('core', 'public_' . strip_tags($service)); + if (is_null($file)) { header('HTTP/1.0 404 Not Found'); exit; } - $parts=explode('/', $file, 2); - $app=$parts[0]; + $parts = explode('/', $file, 2); + $app = $parts[0]; OC_Util::checkAppEnabled($app); OC_App::loadApp($app); OC_User::setIncognitoMode(true); - require_once OC_App::getAppPath($app) .'/'. $parts[1]; + $baseuri = OC::$WEBROOT . '/public.php/' . $service . '/'; + + require_once OC_App::getAppPath($app) . '/' . $parts[1]; } catch (Exception $ex) { //show the user a detailed error page |