后台直接修改(最简单,推荐)
这是最直接、最简单的方法,适合所有DedeCMS版本。

-
登录后台:使用管理员账号登录您的DedeCMS后台。
-
进入栏目管理:在左侧菜单栏中,找到 【核心】 -> 【栏目管理】。
-
找到目标栏目:在栏目列表中,找到您想要添加
nofollow属性的那个顶级栏目(关于我们”)。 -
编辑栏目:将鼠标移动到该栏目名称上,点击右侧出现的 【更改】 或 【编辑】 按钮。
(图片来源网络,侵删) -
修改栏目属性:在弹出的栏目编辑页面中,找到 “栏目属性” 或 “栏目选项” 这一项,通常它是一个下拉选择框,里面有多个选项,
频道封面列表栏目外部链接单页文档
-
添加自定义属性:默认的选项里可能没有
nofollow,您需要 在现有选项的后面手动添加,nofollow。- 例如:如果原来的值是
列表栏目,您就把它修改为列表栏目,nofollow。 - 例如:如果原来是
单页文档,就修改为单页文档,nofollow。
- 例如:如果原来的值是
-
保存:点击页面底部的 【确定】 或 【保存】 按钮即可。
原理:DedeCMS在生成栏目链接时,会读取 栏目属性 这个字段,虽然这个字段本身不是为 nofollow 设计的,但DedeCMS的标签 {dede:field.typeurl/} 或其他相关链接生成函数,会检查这个字段是否包含 nofollow 关键字,如果包含,就会自动将其输出为链接的 rel="nofollow" 属性。

修改模板文件(更灵活,适合开发者)
如果您想一次性为所有符合某个条件的栏目(比如所有单页栏目)都加上 nofollow,或者对现有模板进行深度修改,可以直接修改模板文件。
-
找到导航模板文件:
- 默认情况下,网站的主导航模板文件位于
/templets/default/目录下。 - 最常见的文件名是
header.htm,因为导航通常位于网站的头部。 - 如果您使用了自定义模板,请找到您当前正在使用的模板目录。
- 默认情况下,网站的主导航模板文件位于
-
定位导航代码:打开
header.htm文件,找到生成导航的代码块,通常是这样的channelartlist或channel-
示例1:使用
channelartlist标签(常见于顶级导航)<div id="navMenu"> {dede:channelartlist typeid='top' row='8'} <a href="{dede:field.typeurl/}" title="{dede:field name='typename'/}">{dede:field name='typename'/}</a> {/dede:channelartlist} </div> -
示例2:使用
channel<div id="navMenu"> {dede:channel type='top' row='8'} <a href="[field:typeurl/]" title="[field:typename/]">[field:typename/]</a> {/dede:channel} </div>
-
-
修改链接标签,添加
nofollow: 您可以直接在<a>标签中手动添加rel="nofollow"。-
修改后的
channelartlist代码:<div id="navMenu"> {dede:channelartlist typeid='top' row='8'} <!-- 使用 runphp='yes' 来判断栏目属性,更灵活 --> <a href="{dede:field.typeurl/}" title="{dede:field name='typename'/}" {dede:field name='typeid' runphp='yes'} global $dsql; $row = $dsql->GetOne("SELECT `issend` FROM `dede_arctype` WHERE `id` = @me"); if ($row['issend'] == -1) { @me = ' rel="nofollow"'; } else { @me = ''; } {/dede:field}> {dede:field name='typename'/} </a> {/dede:channelartlist} </div> -
更简单的手动添加方法(推荐用于少量修改): 如果您只是想给固定的几个栏目加,可以直接修改HTML。
<div id="navMenu"> {dede:channel type='top' row='8'} <a href="[field:typeurl/]" title="[field:typename/]" [field:rel/]>[field:typename/]</a> {/dede:channel} </div>然后在后台栏目管理中,按照 方法一 的方式,为需要
nofollow的栏目在“栏目属性”里加上,nofollow,DedeCMS会自动将这个值赋给[field:rel/]。
-
修改PHP源码(一劳永逸,但有一定风险)
此方法适合不希望每次修改栏目都去后台操作的站长,可以一次性为所有“外部链接”或“单页文档”类型的栏目自动加上 nofollow。
警告:修改核心文件有风险,操作前请务必备份原文件!
-
找到并打开文件: 文件路径为
/include/taglib/channel.lib.php。 -
定位代码:在文件中找到
function lib_channel这个函数,然后找到$linkTypeUrl这一行,它负责生成URL。 -
修改代码:找到类似下面的代码行(不同版本可能略有差异):
// 大约在第60行左右 $linkTypeUrl = GetOneTypeUrlA($typeinfos);
-
在其后添加判断逻辑:在这行代码后面,添加
if判断,来为特定类型的栏目添加nofollow属性。-
场景A:为所有“外部链接”类型的栏目添加
nofollow// 在 $linkTypeUrl = GetOneTypeUrlA($typeinfos); 后面添加 if ($typeinfos['ispart'] == 2) { // ispart == 2 代表是外部链接 $linkTypeUrl .= ' rel="nofollow"'; } -
场景B:为所有“单页文档”类型的栏目添加
nofollow// 在 $linkTypeUrl = GetOneTypeUrlA($typeinfos); 后面添加 if ($typeinfos['ispart'] == 1 && $typeinfos['channeltype'] == -1) { // ispart == 1 且 channeltype == -1 代表是单页文档 $linkTypeUrl .= ' rel="nofollow"'; }
-
-
保存文件:保存修改后的
channel.lib.php文件,然后刷新网站前台,查看效果。
总结与推荐
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 后台修改 | 简单、安全、无需代码知识 | 每个栏目都要单独修改,效率低 | 修改少量、特定的导航链接 |
| 修改模板 | 灵活、可批量控制、不修改核心 | 需要一定的模板和标签知识 | 需要根据栏目类型(如所有单页)统一控制 |
| 修改源码 | 一劳永逸、自动化 | 有风险、升级会覆盖、需要PHP知识 | 网站管理员熟悉代码,且需要长期自动化处理 |
对于绝大多数用户,我强烈推荐使用【方法一:后台直接修改】,因为它最简单、最安全,且效果立竿见影,只有在需要批量处理或追求更高自动化程度时,才考虑使用方法二或方法三。
