diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-03-06 16:01:13 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2014-03-06 16:01:13 +0100 |
commit | 0f1374c02882df35c8c6142455ce0961ad0b6643 (patch) | |
tree | f39a79b00980a0f57487942a29f903ae7d8d2f30 | |
parent | 1785c0c9b9fcdc6e9a8e58f13f45e5b53364882a (diff) | |
download | nextcloud-server-0f1374c02882df35c8c6142455ce0961ad0b6643.tar.gz nextcloud-server-0f1374c02882df35c8c6142455ce0961ad0b6643.zip |
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 767295b98db..6592c6f0601 100644 --- a/public.php +++ b/public.php @@ -6,24 +6,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 |