Cakephp 如何了解core.php中的webroot
我使用的是CakePHP2.3.1 我们的服务器在一台服务器中有一些独立的应用程序。因此,我想更改会话.cookie\u路径设置,如下所示: 我可以用这个成功地改变它。但这里有一个问题。我需要动态地将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
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/'
)
));