summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoricewind1991 <robin@icewind.nl>2014-04-07 14:53:44 +0200
committericewind1991 <robin@icewind.nl>2014-04-07 14:53:44 +0200
commitd3eee0119090623052e00ff7df52eeeacfbd8f85 (patch)
treedb3f8407cd16aa8f869eb4c7a8f616424d9d5182
parent0fe32eee1316e6614c79709e88d9be62fc8252dd (diff)
parent0f1374c02882df35c8c6142455ce0961ad0b6643 (diff)
downloadnextcloud-server-d3eee0119090623052e00ff7df52eeeacfbd8f85.tar.gz
nextcloud-server-d3eee0119090623052e00ff7df52eeeacfbd8f85.zip
Merge pull request #7599 from owncloud/public-pathinfo
Allow using pathinfo based public.php paths
-rw-r--r--public.php20
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