diff --git a/cake/dispatcher.php b/cake/dispatcher.php
index ec4b4bb96..8a8367639 100644
--- a/cake/dispatcher.php
+++ b/cake/dispatcher.php
@@ -245,6 +245,8 @@ class Dispatcher extends Object
$docRoot = $_SERVER['DOCUMENT_ROOT'];
$scriptName = $_SERVER['PHP_SELF'];
+ //print "base: $base
";
+
// if document root ends with 'webroot', it's probably correctly set
$r = null;
@@ -270,25 +272,59 @@ class Dispatcher extends Object
}
else
{
- if(empty($base)){
+ if(empty($base))
+ {
+ // print "setUri: ".setUri()."
";
$isDir = explode('/', setUri());
+ foreach ($isDir as $xyz)
+ {
+ if (!empty($xyz))
+ {
+ $isDir2[] = $xyz;
+ }
+ }
+ $isDir = $isDir2;
+ if (isset($isDir[1]))
+ {
$first = $isDir[1];
+ }
+ else
+ {
+
+ $first = $isDir[0];
+ }
$webPath[] = DS.$first.DS;
+ $dir = $docRoot.$first.DS;
+ //$x = 1;
foreach ($isDir as $dirName)
{
- if(!empty($dirName) && is_dir($docRoot.$first.DS.$dirName))
+ if (empty($dirName))
+ {
+ // continue;
+ }
+ //print "
$x: $dir
";
+ $dir .= $dirName.DS;
+ //$x += 1;
+ if(!empty($dirName) && is_dir($dir))
{
$webPath[] = $dirName.DS;
}
+ //print "
";
+ // print_r($webPath);
+ // print "
";
}
$webroot = implode('', $webPath);
$base = substr($webroot, 0, -1);
+
+ //print "base: $base
";
}
else
{
$webroot =setUri();
}
$this->webroot = preg_replace('/(?:'.APP_DIR.'(.*)|index\\.php(.*))/i', '', $webroot).APP_DIR.DS.WEBROOT_DIR.DS;
+ // print "webrot:".$this->webroot."
";
+
// document root is probably not set to Cake 'webroot' dir
if (preg_match('/\\/index.php(\/)?$/i', $scriptName, $r))
{
@@ -298,6 +334,8 @@ class Dispatcher extends Object
}
else
{
+ // print "base: $base
";
+
return $base;
}
}