我正在使用CakePHP 2.3.1。
我们的服务器在一台服务器上有一些独立的应用程序所以我想更改Cookbook之后的session.cookie_path
设置:
Configure::write('Session', array(
'defaults' => 'php',
'ini' => array(
'session.cookie_path' => '/app/dir'
)
));
我可以用它成功改变它。但这是一个问题。我需要动态地将session.cookie_path
值设置为webroot
(没有字符串文字值,例如'/app/dir'
)。
我尝试在this Q&A之后使用$this->webroot
,但当然它不起作用,因为文件app/Config/core.php
中没有控制器。
有什么想法吗?
答案 0 :(得分:0)
我意识到有一个php变量可用:$_SERVER['REQUEST_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/
。
我还在等待更好的解决方案。