对于两个子域,假设"website.com"共享同一会话(主要是这样您就不必为每个站点再次登录(。
在每个中,我都有.htaccess以以下第一行开头:
php_value session.cookie_domain .website.com
在Chrome的开发工具中检查cookie,该域仍被设置为完整的子域URL,例如"siteone.website.com"和"sitetwo.website.com"而不是".website.com"。
鉴于 VM 正在托管其他站点,更改"php.ini"是不可取的,也不会在 PHP 脚本中以编程方式设置它(如果我能避免的话(。
没有引发或记录错误。.htaccess的其他规则正在发挥作用。尝试清除我所有的浏览数据/cookie。奇怪的是,开发设置(在另一个 VM 上(正在按预期工作。它是否与生产中的SSL设置有关?没有疑难解答的想法。
出于某种原因,有人将 prod VM 设置为用户比安装的主版本更旧版本的 PHP。它通过在 Apache 站点配置中指定通过 FCGI 使用另一个版本的 PHP 来实现这一点。php_value
in.htaccess
仅适用于通过Apache模块运行的PHP。
用于.user.ini
文件为每个子域设置自定义 php.ini 值,并在其中设置session.cookie_domain = .website.com
。
同时,dev VM没有被触及,所以仍然使用PHP作为Apache模块,因此.htaccess
在那里工作。