【问题标题】:php cross domain cookie - except static subdomainphp跨域cookie-静态子域除外
【发布时间】:2026-02-11 00:25:09
【问题描述】:

我有一个包含 n 个子域的网站,其中一个保留用于静态内容。我需要在除静态子域之外的所有子域中设置 cookie。我的主页采用无子域(domain.lk)的方式。如有必要,可以将其路由到 www.domain.com

保持静态子域cookie免费更重要。

在阅读cookies之前我已经尝试过下面这行代码

ini_set('session.cookie_domain', 'domain.lk');

ini_set('session.cookie_domain', 'www.domain.lk');

该行仅出现在动态子域上。但它没有用。无法从不同的子域访问 Cookie。

我的静态子域被硬编码到许多内容(数据库记录)中,因此更改它不是一个好的选择。

【问题讨论】:

  • domain.lk 将其限制为实际上只是一个domain.lk 地址。 .domain.lk(带前导.)允许跨子域使用cookie。没有办法说“允许子域,除了这个特定的”。

标签: php cookies setcookie subdomain


【解决方案1】:

无法设置域级别的 cookie 并使其在给定的子域上不可见。 (但是,您需要在域前加上句点......)

ini_set('session.cookie_domain', '.domain.lk');

但是,如果静态域不需要 cookie(或者可能确实存在 PHP),那么这个 cookie 不存在的事实应该不是问题。

也就是说,您应该能够通过在给定子域上使用 mod_headers Apache 模块来克服这个问题(这样它就不会传输到浏览器客户端)...

RequestHeader unset Set-Cookie

【讨论】: