Skip to content

Commit

Permalink
Add support to setup Kirby above webroot
Browse files Browse the repository at this point in the history
  • Loading branch information
pedroborges committed Mar 4, 2019
1 parent fdca6cb commit d208c83
Showing 1 changed file with 22 additions and 12 deletions.
34 changes: 22 additions & 12 deletions cli/drivers/KirbyValetDriver.php
Expand Up @@ -25,9 +25,11 @@ public function serves($sitePath, $siteName, $uri)
*/
public function isStaticFile($sitePath, $siteName, $uri)
{
if ($this->isActualFile($staticFilePath = $sitePath.$uri)) {
return $staticFilePath;
}
if ($this->isActualFile($staticFilePath = $sitePath.$uri)) {
return $staticFilePath;
} elseif ($this->isActualFile($staticFilePath = $sitePath.'/public'.$uri)) {
return $staticFilePath;
}

return false;
}
Expand All @@ -42,19 +44,27 @@ public function isStaticFile($sitePath, $siteName, $uri)
*/
public function frontControllerPath($sitePath, $siteName, $uri)
{
// Needed to force Kirby to use *.dev to generate its URLs...
$_SERVER['SERVER_NAME'] = $_SERVER['HTTP_HOST'];
$scriptName = '/index.php';

if (preg_match('/^\/panel/', $uri) && file_exists($sitePath . '/panel/index.php')) {
$_SERVER['SCRIPT_NAME'] = '/panel/index.php';

return $sitePath.'/panel/index.php';
if ($this->isActualFile($sitePath.'/index.php')) {
$indexPath = $sitePath.'/index.php';
}

if (file_exists($indexPath = $sitePath.'/index.php')) {
$_SERVER['SCRIPT_NAME'] = '/index.php';
if ($isAboveWebroot = $this->isActualFile($sitePath.'/public/index.php')) {
$indexPath = $sitePath.'/public/index.php';
}

return $indexPath;
if (preg_match('/^\/panel/', $uri) && $this->isActualFile($sitePath.'/panel/index.php')) {
$scriptName = '/panel/index.php';
$indexPath = $sitePath.'/panel/index.php';
}

$sitePathPrefix = ($isAboveWebroot) ? $sitePath.'/public' : $sitePath;

$_SERVER['SERVER_NAME'] = $_SERVER['HTTP_HOST'];
$_SERVER['SCRIPT_NAME'] = $scriptName;
$_SERVER['SCRIPT_FILENAME'] = $sitePathPrefix.$scriptName;

return $indexPath;
}
}

0 comments on commit d208c83

Please sign in to comment.