0

我正在使用 CakePHP 2.3.1。

我们的服务器在一台服务器上有一些独立的应用程序。所以我想按照Cookbooksession.cookie_path更改设置:

Configure::write('Session', array(
    'defaults' => 'php',
    'ini' => array(
        'session.cookie_path' => '/app/dir'
    )
));

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

我试过$this->webroot按照这个 Q&A 使用,但它当然不起作用,因为文件中没有控制器app/Config/core.php

有任何想法吗?

4

1 回答 1

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/.

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

于 2013-03-25T02:22:34.983 回答