在进行任何模板链接修改之前,首要任务是确保织梦CMS后台的系统基本参数配置正确。这决定了全站基础链接的生成规则。
登录织梦CMS后台,点击顶部的【系统】菜单,选择左侧的【系统基本参数】。在弹出的页面中,请重点关注以下两个核心选项:
https://www.example.com。如果填写错误,会导致所有CSS、JS及图片引用路径失效。https://www.example.com,不要填写 https://www.example.com/index.html。修改完成后,点击页面底部的【确定】按钮保存。此时,系统层面的基础链接已经更新,但页面上的旧链接不会立即变,需要执行更新HTML操作。
点击顶部菜单【生成】,依次选择【更新主页HTML】、【更新栏目HTML】以及【更新文档HTML】,全站静态页面才会重新读取最新的链接配置。
很多开发者在修改模板时,习惯直接硬编码链接地址,这导致更换域名或迁移环境时需要修改大量文件。正确的做法是使用织梦内置的标签来动态获取链接。
进入后台【模板】菜单,点击【模板管理】,找到你需要修改的模板文件(例如 footer.htm 或 head.htm),点击【修改】。
在代码编辑区域,请检查并替换以下几种常见的链接写法:
{dede:global.cfg_cmsurl/} 标签。
{dede:global.cfg_basehost/}。
返回首页
修改完模板文件后,必须回到【生成】菜单,点击【一键更新网站】,刷新缓存并重新生成HTML,修改才能生效。
如果网站已经运行很久,文章内容中包含了大量的旧域名链接,手动修改每一篇文章是不现实的。这时需要通过数据库SQL命令进行批量替换。
注意:执行此操作前,请务必通过phpMyAdmin或服务器管理工具备份整个数据库。
登录phpMyAdmin,选择你的织梦数据库,点击顶部的【SQL】标签页。在输入框中执行以下命令:
1. 替换文章正文中的链接(假设将 http://old.com 替换为 https://new.com):
2. 替换文章简介中的链接:
```sql UPDATE dede_archives SET description = REPLACE(description, 'http://old.com', 'https://new.com'); ```3. 替换栏目描述中的链接:
```sql UPDATE dede_arctype SET content = REPLACE(content, 'http://old.com', 'https://new.com'); ```点击右下角的【执行】按钮。执行成功后,文章内容页和栏目页内的所有旧链接都会被自动替换为新链接。

为了SEO优化,通常需要将织梦默认的 /plus/view.php?aid=1 这种动态链接修改为 /a/1.html 这种伪静态链接。
进入【系统】 -> 【系统基本参数】,找到【核心设置】板块,将【是否使用伪静态】选项选择为【是】,并保存。
织梦运行环境不同,规则文件也不同。请在网站根目录创建对应的规则文件。
如果是Apache环境,创建 .htaccess 文件:
```apache RewriteEngine On RewriteBase / RewriteRule ^index\.html$ index.php [L] RewriteRule ^plus/list-([0-9]+)-([0-9]+)\.html$ plus/list.php?tid=$1&PageNo=$2 [L] RewriteRule ^plus/view-([0-9]+)-([0-9]+)\.html$ plus/view.php?arcID=$1&pageno=$2 [L] RewriteRule ^plus/list-([0-9]+)\.html$ plus/list.php?tid=$1 [L] RewriteRule ^plus/view-([0-9]+)\.html$ plus/view.php?aid=$1 [L] ```如果是Nginx环境,在 nginx.conf 或对应域名的配置文件中添加:
```nginx rewrite "^/index.html$" /index.php last; rewrite "^/plus/list-([0-9]+)-([0-9]+).html$" /plus/list.php?tid=$1&PageNo=$2 last; rewrite "^/plus/view-([0-9]+)-([0-9]+).html$" /plus/view.php?arcID=$1&pageno=$2 last; rewrite "^/plus/list-([0-9]+).html$" /plus/list.php?tid=$1 last; rewrite "^/plus/view-([0-9]+).html$" /plus/view.php?aid=$1 last; ```配置完成后,重启Web服务器(Apache或Nginx)。此时,访问栏目和文章的URL形式将发生变化。
织梦默认生成的首页链接末尾会带有 index.html,这会导致权重分散到两个URL(带index和不带index)。我们需要通过代码修改来去除它。
使用代码编辑器打开网站根目录下的 include/channelunit.func.php 文件。找到 GetFileUrl 函数。在该函数中,找到处理首页URL的逻辑部分。
通常在文件的第 260 行左右(视版本而定),找到如下代码:
```php if($cfg_rewrite == 'Y') { return $GLOBALS['cfg_plus_dir']."/view-".$aid.'-1.html'; } ```这不是我们要改的地方。我们需要修改的是返回 index.html 的逻辑。请直接搜索函数 GetIndexUrl,将其修改为:
通过强制返回 $cfg_basehost(即你在系统基本参数中设置的域名),去除了末尾的 index.html。
在模板文件(如 head.htm)中,找到所有调用首页链接的地方。确保不要使用硬编码的 index.html。
使用以下标签调用首页链接:
```html 首页 ```或者使用织梦的栏目导航标签,channelartlist 或 channel 标签中,typeurl 字段也会自动适配上述PHP代码的修改。
修改完成后,进入后台【生成】 -> 【更新主页HTML】 -> 【更新栏目HTML】 -> 【更新文档HTML】。全站首页链接将统一变为不带 index.html 的纯净域名链接。
上一篇: 织梦CMS模板弹窗功能完整实现指南
下一篇: 织梦模板常见漏洞修复与安全加固实操指南
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图