对于cakephp的auth组件有一个奇怪的问题。网址www.example.com和example.com使用不同的Cookie来处理身份验证。如何让两个网址都使用相同的Cookie?我知道这是一个非常模糊的问题,但我不确定我应该发布什么代码。
答案 0 :(得分:1)
同时不允许两个域 - 同时显示相同的内容。设计失败。 只允许其中一个,通常是www。一。 另一个应该301重定向到那个
互联网上有大量的脚本,在这里有关于如何进行htaccess重定向的问题。 例如:http://www.stepforth.com/resources/web-marketing-knowledgebase/non-www-redirect/#.U9b1fvnMnIY
答案 1 :(得分:0)
我认为我对类似问题的回答将适用于您所要求的内容:
CakePHP keep session from main domain across to a subdomain
<强>会话强>
根据this page,要使会话Cookie对您的所有子域和顶级域有效,您实际上需要在APP/config/bootstrap.php
文件中自行设置:
ini_set('session.cookie_domain', '.domain.com');
然后,在您的APP/config/core.php
文件中,将Security设置为low:
Configure::write('Security.level', 'low');
“否则referer_check将被设置为当前的HTTP_HOST CakeSession对象行441。“
<强>饼干:强>
在this page上,它解释了您可以使用'domain'变量:
允许访问cookie的域名。 例如使用'.yourdomain.com'允许从您的所有子域进行访问。
根据他们的示例代码:
<?php
public $components = array('Cookie');
public function beforeFilter() {
parent::beforeFilter();
$this->Cookie->name = 'baker_id';
$this->Cookie->time = 3600; // or '1 hour'
$this->Cookie->path = '/bakers/preferences/';
$this->Cookie->domain = 'example.com';
$this->Cookie->secure = true; // i.e. only sent if using secure HTTPS
$this->Cookie->key = 'qSI232qs*&sXOw!';
$this->Cookie->httpOnly = true;
}