核心原因分析
织梦(DedeCMS)的超链接功能主要涉及三个层面:

- 数据库层面:链接地址是否被正确保存到
dede_archives(文章表)或dede_arctype(栏目表)等表中。 - 程序层面:系统是否开启了链接功能,以及处理链接的程序代码是否正常工作。
- 模板层面:模板文件中调用文章链接的标签是否正确,以及是否被其他规则(如伪静态)影响。
问题就出在这三个层面的某一个或多个环节。
解决方案:分步排查法
请按照以下步骤进行排查,90%的问题都能在这里得到解决。
第一步:基础检查(最常见)
这是新手最容易出错的地方,请务必先检查。
检查是否选择了“使用远程图片”
在发布或编辑文章时,在编辑器下方有一个“远程图片本地化”的选项。请务必勾选“是”,如果不勾选,外部网站的超链接(如 <a href="http://xxx.com">)可能会被织梦的过滤机制误删。

- 操作路径:后台 -> 核心 -> 内容维护 -> 选择文章 -> 编辑 -> 编辑器下方 -> 勾选“使用远程图片” -> 保存。
检查超链接的写法 在编辑器中插入超链接时,确保URL格式正确。
- 绝对路径:
http://或https://开头,http://www.yoursite.com/page.html,这是最推荐的方式。 - 相对路径:相对于网站根目录的路径,
/about.html或../contact.html,有时会因为网站部署在子目录而出错。
检查文章的“跳转网址”功能 织梦有一个“跳转网址”功能,它会把文章的标题链接指向一个外部地址,而不是文章详情页。
- 如何检查:在后台编辑文章,找到“跳转网址”这一项,如果这里填写了网址,那么文章的标题链接就会指向这个网址,而不是你正文里编辑的链接。
- 如何解决:如果你想让正文里的链接生效,请清空“跳转网址”这一栏。
第二步:后台设置检查
如果基础检查无误,问题可能出在系统设置上。
检查系统参数中的“是否使用伪静态” 这是导致链接失效的第二大元凶,如果你开启了伪静态,但规则配置不正确,那么所有链接都会变成404错误。

- 操作路径:后台 -> 系统 -> 系统基本参数 -> 核心设置 -> “是否使用伪静态” -> 选择“否”。
- 测试:将这里设置为“否”,然后更新网站缓存(后台 -> 系统 -> 清除所有缓存),再去访问文章和栏目,如果链接恢复正常,100%就是伪静态规则的问题。
- 如何修复伪静态:
- 织梦自带规则:如果你的服务器是 Apache,请将
/include/rewrite/apache/目录下的.htaccess文件上传到网站根目录,如果是 Nginx,请将/include/rewrite/nginx/目录下的规则代码,复制到你的 Nginx 配置文件中,并重启 Nginx。 - 规则不匹配:检查你的服务器环境(Apache/Nginx)是否和伪静态规则文件匹配,如果规则文件丢失或内容错误,也会导致404。
- 空间/服务器支持:确认你的虚拟主机或云服务器是否支持伪静态功能。
- 织梦自带规则:如果你的服务器是 Apache,请将
检查栏目链接是否指向了外部链接 和文章的“跳转网址”类似,栏目也可能设置了外部链接。
- 操作路径:后台 -> 核心 -> 频道管理 -> 选择一个栏目 -> 修改。
- 检查:在“栏目链接”选项中,如果填写了外部网址,那么这个栏目的所有链接都会指向该网址,而不是栏目列表页,请清空它。
第三步:数据库与程序层面检查
如果以上都无效,问题可能更深层次。
检查数据库中的链接字段 直接查看数据库,看链接是否真的被存进去了。
- 操作路径:登录你的数据库管理工具(如 phpMyAdmin)。
- 检查文章链接:找到
dede_archives表,查看你出问题的那篇文章记录,检查redirecturl字段(跳转网址)是否为空,body字段(文章内容)中是否包含<a href="...">- 检查栏目链接:找到
dede_arctype表,查看对应栏目的typedir(栏目目录)和corank(上级栏目ID)等字段是否正常。 - 检查栏目链接:找到
过滤规则 织梦为了安全,会过滤一些标签和内容,可能是你的链接被错误地过滤掉了。
- 操作路径:后台 -> 系统 -> 系统基本参数 -> 其他选项 -> “获得焦点时” 和 “失去焦点时” 的JS脚本。
- 检查:确保这些字段里没有任何可能导致链接被清除的恶意代码或规则,可以尝试清空它们,然后保存测试。
检查模板文件中的标签 确认你调用链接的标签是否正确。
- 链接:在文章列表或内容页模板中,正确的标签是:
<a href='[field:arcurl/]'>[field:title/]</a>
确保你使用的是
arcurl,而不是typeurl(typeurl用于栏目链接)。 - 栏目链接:在列表页或首页调用栏目时,正确的标签是:
<a href='[field:typeurl/]'>[field:typename/]</a>
检查是否有插件或自定义修改冲突 你是否安装过与内容、编辑器或URL相关的插件?或者是否修改过核心文件?
- 解决方案:尝试禁用所有插件,或者将核心文件(如
/include/helpers/ helperarchive.class.php)恢复到初始版本,看问题是否解决。
第四步:服务器与浏览器层面检查
清除浏览器缓存和Cookie
有时候是浏览器缓存了错误的页面,请按 Ctrl + F5 强制刷新,或者使用无痕模式访问。
检查服务器配置
- 404错误:访问一个不存在的页面,看服务器返回的是“404 Not Found”还是自定义的404页面,如果自定义404页面有问题,可能会导致所有页面都显示它。
- .htaccess 文件:检查网站根目录下的
.htaccess文件(如果存在),看是否有错误的规则重定向或覆盖了织梦的规则。 - 权限问题:确保网站目录有正确的读写权限,特别是
/data目录和缓存目录。
总结与最终建议
遇到“织梦5.7超链接用不了”的问题,请按以下逻辑顺序处理:
- 最优先:检查文章编辑时的 “使用远程图片” 是否勾选,以及 “跳转网址” 是否为空。
- 其次:后台系统设置里,将 “是否使用伪静态” 改为 “否”,测试链接是否恢复,如果恢复,说明是伪静态规则问题,请重新配置正确的规则文件。
- 再次:检查 栏目设置 中的“栏目链接”是否为空。
- 深入:检查 模板标签 是否用对(
arcurlvstypeurl),并尝试 清除所有缓存。 - 最后:检查 数据库 内容和 服务器环境,考虑 插件冲突。
如果所有方法都尝试过仍然无效,建议你提供更具体的信息,
- 是文章里的链接失效,还是栏目链接失效?
- 是所有链接都失效,还是特定文章/栏目?
- 开启伪静态和关闭伪静态时,分别是什么现象(404错误、跳转到首页等)?
这样能更精准地定位问题,希望这份详细的指南能帮你解决问题!
