2016-02-05 55 views
0

我有网站饼干少的子域

example.com

和CNAME子域

static.example.com

对CSS/JS/IMG文件,加载没有饼干在标头

即时通讯使用codeigniter设置cookie,c onfig.php

$config['cookie_domain'] = "example.com"; //not .example.com 

但是当IM打开谷歌浏览器的控制台它说,饼干被设定为.example.com的

是一切好?我的意思是这个cookie是为子域设置的呢?

即时通讯使用codeigniter内置cookie,即时通讯自动加载助手。

,并像

$cookie = array(
    'name' => 'lang', 
    'value' => $lang, 
    'expire' => '86500', 
    'path' => '/', 
    'secure' => FALSE 
); 
set_cookie($cookie); 
+0

您可以显示您使用的代码来设置Cookie吗?或者你在谈论CodeIgniter会话cookie? – thatidiotguy

+0

@thatidiotguy post updatet –

回答

0

设置cookie是的,这应该是罚款。该域上的初始.表示该Cookie适用于该域和所有子域。如果cookie域只是example.com,它不适用于static.example.com。请参阅 What does the dot prefix in the cookie domain mean?

+0

所以我的目标是加载网站有点快,并使用静态cname子域为css/img/js文件,static.example.com是工程? 例如:加载类似于http://static.example.com/assets/css/style.css的style.css文件 –

+0

这只是关于cookie,它与相关URL的解释方式无关。 – Barmar

+0

这是不正确的...... domain.com上的一个cookie有或没有点,将适用于所有的子域:'http:// www.phpied.com/www-vs-no-www-and-cookies /' – peixotorms

0

您通常应该使用第二个域名(例如,Stack Exchange使用sstatic.net)。在您控制自己的Cookie的同时,如果您使用的是Google Analytics之类的内容,他们通常会尽可能地设置Cookie,毕竟您会认定它是一个烹饪的域名。

+0

等等。我nede新域名不子域获得工作静态CNAME? –

+0

,除非您为主站点使用www.domain.com,是的。你需要另一个域名。 – peixotorms

+0

@GiaNebieridze这是最傻瓜的方法。特别是如果你把一个CDN放在它的前面,为你删除所有的Cookie标题,以确保一个**从不**设置。 – ceejayoz

0

当您在.domain.com上设置cookie时,它对所有sudomains都有效。 如果你真的需要做到这一点,你必须使用www.domain.com和设置cookie的明确为www.domain.com

如果您有多个站点,你要这个功能,你可以注册其他域名somecdn-lookalike-name.com,只提供静态内容(nginx的),并且由于您在.domain.com上设置了Cookie,您的新域名将不会有任何内容。

+0

当我将cookie域设置为www.example.com时,cookies停止工作 –

+0

您是否更改了网站上的根网址以添加www?您在设置Cookie时是否在浏览器上看到了www.domain.com?您是否检查cookie是否在www.domain.com/page上运行(请注意浏览器中的www)? – peixotorms

+0

我有htaccess重定向www.example.com到example.com 所以我只看到没有www的地址 –