欢迎访问艾立兹站 Aliz- 专注建站教程与技术分享
您当前的位置:首页 > 建站教程 > 帝国 CMS 教程

帝国CMS多访问端子域名Cookie跨域登录同步完整配置

时间:2026-08-13 22:31:11  来源:aliz.cn  作者:SKY  阅读:
原创实测|适用于帝国 CMS8.0 多访问端(多站点)子域名部署场景。 场景示例:主站 www.aliz.cn、英文站 en.aliz.cn,两套站点共用同一套会员数据库,默认登录之后,子域名之间登录状态不同步,登录 A 域名,B 域名依旧显示未登录,根源是 Cookie 作用域限制。

原理说明


PHP Cookie 默认只在当前域名生效; www.aliz.cn 设置的 Cookie,默认不会带到 en.aliz.cn。 修改帝国 CMS 全局 cookie 域名配置,把 cookie 域设置为根域名 .aliz.cn,所有子域名共享登录 Cookie,实现会员登录状态互通。
⚠️注意:仅适用于同一根域名下子域名,例如 www.aliz.cnen.aliz.cn; 如果是完全不同的一级域名,例如 aliz.comaliz.cn,无法靠 cookie 域实现登录同步,需要 UCenter 统一会员中心。

一、修改核心配置文件 config.php


文件路径:/e/config/config.php
找到配置项:
php
运行
$ecms_cookie_domain = '';

修改为你的根域名,前面必须带上英文小数点 .
php
运行
//aliz.cn示例
$ecms_cookie_domain = '.aliz.cn';

完整示例片段:
php
运行
//COOKIE作用域 多访问端子域名跨域登录
$ecms_cookie_domain = '.aliz.cn';
$ecms_cookie_path = '/';
$ecms_cookie_secure = 1; //HTTPS站点开启为1,http站点改为0

参数解释
  1. $ecms_cookie_domain:根域名,开头.代表所有子域名全部生效
  2. $ecms_cookie_path/ 代表网站全站路径
  3. $ecms_cookie_secure:网站是 HTTPS 写1;纯 HTTP 网站必须写0,否则 Cookie 设置失败。
重要:修改保存编码 UTF‑8 无 BOM。

二、会员登录、退出跳转适配(多访问端)

1、登录成功跳转


多访问端环境,登录成功建议跳转到当前访问端会员中心地址。 模板登录表单 action 地址不要写死域名,使用系统变量:
html
预览
<form action="[!--newsurl--]e/member/login.php" method="post">

2、退出登录模板


退出链接,使用当前访问端地址:
html
预览
<a href="[!--newsurl--]e/member/logout.php">退出登录</a>
不要写死 www.aliz.cn,切换语言访问端时,[!--newsurl--]自动输出当前站点域名。

三、清除旧 Cookie 缓存测试步骤

  1. 修改完 configconfig.php
  2. 浏览器全部清除网站 Cookie,不要保留旧会话 cookie;
  3. www.aliz.cn 登录会员;
  4. 打开新标签访问 en.aliz.cn,检查是否已经处于登录状态;
  5. 测试退出:任意站点点击退出,所有子域名同步登出。

四、高频问题排查

1、修改之后依旧不能同步登录

  1. $ecms_cookie_secure 设置错误 HTTPS 站点填 1,HTTP 站点填 0;填错会直接无法写入 cookie。
  2. 域名格式错误:必须是 .aliz.cn,不要写成 aliz.cn(缺少前面小数点),不要写完整子域名 www.aliz.cn
  3. 浏览器没有删除旧 Cookie,旧的 cookie 域还是旧配置,必须清除浏览器 Cookie 再测试。
  4. CDN 反向代理场景:CDN 如果缓存 Set‑Cookie 响应头,会导致 cookie 写不进去,CDN 需要忽略缓存登录、会员相关页面。

2、HTTPS 站点设置 secure=1 后,http 访问网站登录失效


secure=1 的 Cookie,只有 HTTPS 协议下才会发送; 网站全站强制 HTTPS,Nginx 把 http 全部 301 跳转 https,才可以开启 secure=1。 如果网站同时支持 http 和 https,$ecms_cookie_secure = 0

3、多访问端子目录模式(www.aliz.cn/en/)需要配置吗?


子目录模式不需要修改ecms_cookie_domain,同一个域名天然 cookie 互通。只有子域名模式才需要配置。

4、后台管理员登录是否同步?


这个配置只针对前台会员;帝国 CMS 后台管理员 cookie 独立,不受该参数控制,后台无法子域名同步登录。

五、Nginx 配套建议(多访问端子域名)


nginx
server {
    listen 443 ssl;
    server_name www.aliz.cn en.aliz.cn;
    root 你的网站根目录;

    # 重要:代理/CDN环境,传递真实HTTPS标记
    proxy_set_header X‑Forwarded‑Proto $scheme;
}

六、边界说明

  1. 根域名不同,例如 aliz.cnaliz.com,本方案无效,需要 UCenter 会员统一接口。
  2. 升级帝国 CMS 版本,/e/config/configconfig.php 不会被覆盖,配置永久保留。
  3. 开启 cookie 跨域之后,同根域名下所有子域名都可以读取登录 cookie,属于安全可控。

七、配套 hreflang 完整头部模板代码(复制直接用)


放到公共模板<head>标签内部,适配多访问端子域名:
html
预览
<link rel="alternate" hreflang="zh‑CN" href="https://www.aliz.cn[!--selfurl--]" />
<link rel="alternate" hreflang="en" href="https://en.aliz.cn[!--selfurl--]" />
<link rel="canonical" href="[!--selfurl--]">
canonical 标签防止多语言页面产生重复收录问题。

本文配套模板、静态源码可前往艾立兹素材库alisucai.com下载

发表评论 共有0条评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
公众号二维码

扫码关注公众号
获取全套技术教程