下面我将为你详细解释如何操作,并提供不同场景下的设置建议。

(图片来源网络,侵删)
核心方法:修改 config.cache.inc.php
这个文件位于 DedeCMS 的根目录下(/wwwroot/ 或 /public_html/)。
步骤 1:定位 cfg_cookie_encode 和 cfg_cookie_encode_pre
打开 config.cache.inc.php 文件,找到下面这两行代码:
// Cookie 加密密钥,用于加密 Cookie 数据,请务必修改为复杂的随机字符串 $cfg_cookie_encode = 'DedeCMS@#$%'; // Cookie 加密前缀,用于区分 Cookie,一般无需修改 $cfg_cookie_encode_pre = 'DEDE_';
重要提示:
$cfg_cookie_encode是加密密钥,不是有效期,它的作用是加密和解密 Cookie 中的敏感信息(如用户ID、登录状态等),确保数据安全。为了网站安全,请务必将其修改为一串复杂且唯一的随机字符串,不要使用默认值。$cfg_cookie_encode_pre是Cookie 前缀,用来避免与其他网站的 Cookie 冲突,通常保持默认即可。
你直接修改这两行代码,并不能改变 Cookie 的有效期。

(图片来源网络,侵删)
步骤 2:定位 cfg_cookie_time 并修改有效期
在同一文件中,找到 cfg_cookie_time 这一行,这才是真正控制 Cookie 有效期的变量:
// Cookie 有效期,单位为秒,默认为 365 天 $cfg_cookie_time = 31536000;
这里的值是一个整数,单位是秒,你可以根据需要修改这个数值。
常用 Cookie 有效期设置示例
以下是一些常用的时间设置,你可以根据你的需求进行选择和修改:
| 需求场景 | 时间(秒) | 计算方式 | 说明 |
|---|---|---|---|
| 会话 Cookie (浏览器关闭即失效) | 0 |
- | 这是最短的有效期,当浏览器关闭时,Cookie 会被自动删除,适合“记住我”功能未勾选的情况。 |
| 1 小时 | 3600 |
60 秒 * 60 分钟 | 适用于短期活动、临时验证码等。 |
| 12 小时 | 43200 |
3600 秒 * 12 小时 | 适用于需要用户在一天内保持登录状态的场景。 |
| 1 天 | 86400 |
3600 秒 * 24 小时 | 适用于普通的“记住我”功能,有效期一天。 |
| 7 天 (一周) | 604800 |
86400 秒 * 7 天 | 适用于希望用户一周内免登录的场景。 |
| 30 天 (一个月) | 2592000 |
86400 秒 * 30 天 | DedeCMS 默认“记住我”功能通常使用这个时长。 |
| 90 天 (三个月) | 7776000 |
86400 秒 * 90 天 | 较长的有效期,提升用户体验。 |
| 1 年 | 31536000 |
86400 秒 * 365 天 | DedeCMS 的默认值,适用于长期不更换设备的用户。 |
| 永久 (不推荐) | 2147483647 |
PHP_INT_MAX - 1 | 这是 32 位系统上的最大时间戳,虽然看起来是“永久”,但浏览器本身也可能有自己的清理策略。 |
修改示例:
假设你希望将“记住我”的有效期设置为 30 天,你需要将 $cfg_cookie_time 的值修改为 2592000。
// 修改前 $cfg_cookie_time = 31536000; // 1年 // 修改后 $cfg_cookie_time = 2592000; // 30天
重要注意事项
-
修改后立即生效: 修改
config.cache.inc.php文件后,新的 Cookie 有效期设置会立即对新登录的用户生效,已经存在的 Cookie 会按照它原有的有效期继续存在,直到被浏览器或服务器删除。 -
安全第一: 再次强调,请务必修改
$cfg_cookie_encode的值,一个强加密密钥是防止 Cookie 被伪造和窃取的关键,你可以使用在线的随机字符串生成器来生成一个复杂的密钥。 -
区分 Cookie 类型: DedeCMS 中主要有两种 Cookie:
- 用户登录状态 Cookie:由
$cfg_cookie_time控制,这是你主要需要设置的。 - 后台管理登录 Cookie:通常也使用此设置,但为了安全,后台的 Cookie 有效期可能设置得更短一些,如果你需要单独设置后台,可以检查后台模板或配置文件中是否有相关设置,但绝大多数情况下,后台也遵循全局的
$cfg_cookie_time。
- 用户登录状态 Cookie:由
-
浏览器策略: Cookie 的最终行为还受到浏览器设置的影响,用户可以设置浏览器禁用 Cookie、清理 Cookie 等,这些都会覆盖你的服务器设置。
要在 DedeCMS 中设置 Cookie 的有效期,最直接、最有效的方法就是:
- 打开根目录下的
config.cache.inc.php文件。 - 找到
$cfg_cookie_time这一行。 - 将其值修改为你需要的秒数(30天就是
2592000)。 - (安全建议)同时修改
$cfg_cookie_encode为一个复杂的随机字符串。 - 保存文件即可。
这个方法简单、直接,并且是 DedeCMS 官方支持的标准配置方式。
