Cakephp 如何了解core.php中的webroot

Cakephp 如何了解core.php中的webroot,cakephp,Cakephp,我使用的是CakePHP2.3.1 我们的服务器在一台服务器中有一些独立的应用程序。因此,我想更改会话.cookie\u路径设置,如下所示: 我可以用这个成功地改变它。但这里有一个问题。我需要动态地将session.cookie\u path值设置为webroot(不带字符串文本值,例如'/app/dir') 我试着使用下面的$this->webroot,但它当然不起作用,因为文件app/Config/core.php中没有控制器 有什么想法吗?我意识到有一个php变量可用:$\u SERVER

我使用的是CakePHP2.3.1

我们的服务器在一台服务器中有一些独立的应用程序。因此,我想更改会话.cookie\u路径设置,如下所示:

我可以用这个成功地改变它。但这里有一个问题。我需要动态地将
session.cookie\u path
值设置为
webroot
(不带字符串文本值,例如
'/app/dir'

我试着使用下面的
$this->webroot
,但它当然不起作用,因为文件
app/Config/core.php
中没有控制器


有什么想法吗?

我意识到有一个php变量可用:
$\u SERVER['REQUEST\u URI']
。 所以我可以解决这个问题

$requestURI = $_SERVER['REQUEST_URI'];
$webroot = preg_replace('/(^\/[^\/]+\/).*$/', '$1', $requestURI);
//echo $webroot;
Configure::write('Session', array(
    'defaults' => 'cake',
    'ini' => array(
        'session.cookie_path' => $webroot   // looks like '/app/'
    )
));
但该解决方案的可重用性不够:它不适用于位于较深目录(如
/apps/app1/
)中的应用程序

我仍在等待更好的解决方案

$requestURI = $_SERVER['REQUEST_URI'];
$webroot = preg_replace('/(^\/[^\/]+\/).*$/', '$1', $requestURI);
//echo $webroot;
Configure::write('Session', array(
    'defaults' => 'cake',
    'ini' => array(
        'session.cookie_path' => $webroot   // looks like '/app/'
    )
));