问题原因:什么是“字节”?
首先要理解,这里的“字节”不是指你看到的“字数”。

- 中文字符: 在 DedeCMS 的数据库(通常是 UTF-8 编码)中,一个中文字符占用 3 个字节。
- 英文字符/数字/符号: 在 UTF-8 编码中,一个英文字母或数字占用 1 个字节。
系统提示“关键字不能小于2个字节”,意味着你输入的关键字总字节数必须大于或等于 2。
举例说明:
| 你输入的关键字 | 字节数计算 | 是否符合要求 |
|---|---|---|
a |
1 个字节 | 不符合 (小于2) |
ab |
2 个字节 | 符合 |
中 |
3 个字节 | 符合 |
a中 |
1 + 3 = 4 个字节 | 符合 |
a b |
1 + 1 + 1 = 3 个字节 | 符合 |
A |
1 个字节 | 不符合 (小于2) |
你至少需要输入 2个英文字母 或 1个中文字 才能满足这个要求。
如何解决?
解决这个问题有两种方法:一种是临时 workaround(绕过规则),另一种是从根本上修改系统规则。

临时解决方案(快速通过验证)
如果你只是想快速发布文章,不希望修改核心文件,可以采取以下策略:
- 输入两个英文字母: 这是最简单的方法,输入
aa、se、kw等。 - 输入一个中文字符: 直接输入一个汉字,如
网、站、文等。
这种方法虽然能让你通过验证,但强烈不推荐,因为关键字对 SEO 至关重要,随意填写会严重影响网站的搜索引擎优化效果。
永久解决方案(修改系统规则)
如果你想从根本上修改这个限制,让它更符合你的需求(允许单个关键字),你需要修改 DedeCMS 的源代码。修改核心文件前,务必备份原文件!
场景1:修改为“关键字不能为空”
这是最常见的修改需求,即只要填写了关键字即可,不再限制字节数。

你需要修改的文件是:/dede/archives_add.php(添加文章时)和 /dede/archives_edit.php(编辑文章时)。
步骤:
-
打开文件: 用 FTP 或文件管理器登录你的服务器,找到并打开
archives_add.php文件。 -
查找代码: 在文件中搜索
if($keywords== ''),你会找到类似下面的代码块:// 旧代码片段 if($keywords== '') { ShowMsg('请输入关键字!', '-1'); exit(); } if(strlen($keywords) < 2) { ShowMsg('关键字不能小于2个字节!', '-1'); exit(); } -
修改或删除代码:
- 如果你想完全删除字节数限制: 直接删除
if(strlen($keywords) < 2)及其下面的ShowMsg和exit()两行代码即可。 - 如果你想改成“关键字至少1个字符”: 将
strlen($keywords) < 2修改为strlen($keywords) < 1。 - 如果你想改成“关键字至少2个字符”: 将
strlen($keywords) < 2修改为mb_strlen($keywords, 'UTF-8') < 2。(推荐此方法,因为mb_strlen是按字符数计算的,更符合中文用户的直觉)。
- 如果你想完全删除字节数限制: 直接删除
-
保存文件: 保存修改后的
archives_add.php文件。 -
重复操作: 对
archives_edit.php文件执行完全相同的修改。
修改后的代码示例(推荐,改为按字符数判断,至少2个字符):
// 修改后的代码片段
if($keywords== '')
{
ShowMsg('请输入关键字!', '-1');
exit();
}
// 使用 mb_strlen 按字符数判断,至少2个字符
if(mb_strlen($keywords, 'UTF-8') < 2)
{
ShowMsg('关键字不能小于2个字符!', '-1');
exit();
}
这样,系统就会提示“关键字不能小于2个字符”,用户输入“中”或 ab 都可以,但输入 a 或 A 就不行了,逻辑更清晰。
场景2:修改为允许单个关键字(1个字节)
如果你确实希望允许像 a 或 A 这样的单个字符作为关键字,可以修改判断条件。
步骤:
- 打开
archives_add.php和archives_edit.php。 - 找到
if(strlen($keywords) < 2)这一行。 - 将其修改为
if(strlen($keywords) < 1)。 - 保存文件。
这样,只要关键字不为空,就能通过验证。
最佳实践与建议
虽然你可以通过修改代码来放宽限制,但从 SEO 和内容质量的角度出发,我强烈建议你不要修改这个限制,而是遵循以下最佳实践:
- 关键字是文章的“灵魂”: 每个关键字都应该精准地概括文章的核心内容,一个字的关键字(如“网”)过于宽泛,没有针对性,对搜索引擎和用户都没有帮助。
- 使用有意义的关键字组合:
- 错误示范:
网站好文章 - 正确示范:
织梦cms教程DedeCMS 5.7 下载网站建设技巧
- 错误示范:
- 一个关键字建议2-5个汉字: 这样既能保证描述的精准性,又符合系统的默认要求。
- 使用多个关键字: DedeCMS 允许用英文逗号 分隔多个关键字。
织梦CMS,网站建设,PHP开源程序,这比用单个字堆砌要好得多。
| 问题 | 解释 | 解决方案 |
|---|---|---|
| “关键字不能小于2个字节” | 系统要求关键字总字节数 ≥ 2,一个汉字=3字节,一个字母=1字节。 | 临时: 输入 ab 或 中。 |
| 如何修改规则 | 修改核心文件 archives_add.php 和 archives_edit.php 中的 strlen() 判断。 |
永久: 修改或删除 if(strlen($keywords) < 2) 这段代码。 |
| 推荐做法 | 从SEO角度出发,不应放宽限制,而应填写有意义、符合规则的关键字。 | 最佳实践: 使用2个以上汉字组成的、精准描述文章内容的关键词。 |
