在 @app/web/index.php 部分,在第二行可以看到
ini_set('session.cookie_domain', '.fancyecommerce.com'); //初始化域名,
这个的作用是开启session,让各个子域名可以共享session,这样appfront的各个store切换语言,虽然子域名变了,但是登陆信息和购物车信息的session还是在的
如果前台和后台都是同一个域名下的不同的子域名,那么,如果在appfront的index.php设置了子域名共享,
那么,appadmin/web/index.php 也需要设置,如果不设置,就会导致后台的cookie存在两个PHPSESSIONID

可以看到这两个 PHPSESSIONID的对应的domain是不同的,一个是 .fancyecommerce.com
, 一个是 fecshop.appadmin.fancyecommerce.com
, 会导致存储session,刷新页面后,无法取到保存的session
注意:如果你你的后台appadmin和前台的各个入口是不同的域名,那么不会存在这个问题,只有在同一个域名下的各个子域,当某个入口开启了session.cookie_domain
, 才会出现这个问题,导致的后果就是设置了session后,在页面刷新后取不到session
,譬如后台切换多语言的时候会失效
因为fecshop的各个app的session存储的都是不同的redis库,因此不会出现session在各个入口冲突的问题。
总之,上面说的是,如果某一个入口(譬如appfront)设置了session.cookie_domain
,那么各个子域(譬如appadmin,apphtml5都使用了和appfront入口 相同域名
下的 不同的子域名
)对应的其他入口都需要设置,
否则,将会出现浏览器的session冲突。