当前位置:网站首页 >  攻略

织梦CMS模板链接修改全攻略,手把手教你搞定

时间:2026年06月16日 05:45:35 来源:易频IT社区

一、修改系统全局链接参数

在进行任何模板链接修改之前,首要任务是确保织梦CMS后台的系统基本参数配置正确。这决定了全站基础链接的生成规则。

登录织梦CMS后台,点击顶部的【系统】菜单,选择左侧的【系统基本参数】。在弹出的页面中,请重点关注以下两个核心选项:

  • 站点根网址(cfg_basehost):这里必须填写完整的域名,且末尾不要带斜杠。例如,正确格式为 https://www.example.com。如果填写错误,会导致所有CSS、JS及图片引用路径失效。
  • 主页链接(cfg_indexurl):这是全站返回首页的链接地址。通常情况下,为了SEO权重集中,建议直接填写域名,即 https://www.example.com,不要填写 https://www.example.com/index.html

修改完成后,点击页面底部的【确定】按钮保存。此时,系统层面的基础链接已经更新,但页面上的旧链接不会立即变,需要执行更新HTML操作。

点击顶部菜单【生成】,依次选择【更新主页HTML】【更新栏目HTML】以及【更新文档HTML】,全站静态页面才会重新读取最新的链接配置。

二、模板文件中的动态标签替换

很多开发者在修改模板时,习惯直接硬编码链接地址,这导致更换域名或迁移环境时需要修改大量文件。正确的做法是使用织梦内置的标签来动态获取链接。

进入后台【模板】菜单,点击【模板管理】,找到你需要修改的模板文件(例如 footer.htmhead.htm),点击【修改】

在代码编辑区域,请检查并替换以下几种常见的链接写法:

修改完模板文件后,必须回到【生成】菜单,点击【一键更新网站】,刷新缓存并重新生成HTML,修改才能生效。

三、批量替换数据库中的旧链接

如果网站已经运行很久,文章内容中包含了大量的旧域名链接,手动修改每一篇文章是不现实的。这时需要通过数据库SQL命令进行批量替换。

注意:执行此操作前,请务必通过phpMyAdmin或服务器管理工具备份整个数据库。

登录phpMyAdmin,选择你的织梦数据库,点击顶部的【SQL】标签页。在输入框中执行以下命令:

1. 替换文章正文中的链接(假设将 http://old.com 替换为 https://new.com):

```sql UPDATE dede_addonarticle SET body = REPLACE(body, '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'); ```

点击右下角的【执行】按钮。执行成功后,文章内容页和栏目页内的所有旧链接都会被自动替换为新链接。

四、开启并配置伪静态链接

织梦CMS模板链接修改全攻略,手把手教你搞定

为了SEO优化,通常需要将织梦默认的 /plus/view.php?aid=1 这种动态链接修改为 /a/1.html 这种伪静态链接。

1. 后台开启伪静态

进入【系统】 -> 【系统基本参数】,找到【核心设置】板块,将【是否使用伪静态】选项选择为【是】,并保存。

2. 配置服务器重写规则

织梦运行环境不同,规则文件也不同。请在网站根目录创建对应的规则文件。

如果是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

织梦默认生成的首页链接末尾会带有 index.html,这会导致权重分散到两个URL(带index和不带index)。我们需要通过代码修改来去除它。

1. 修改 include/channelunit.func.php 文件

使用代码编辑器打开网站根目录下的 include/channelunit.func.php 文件。找到 GetFileUrl 函数。在该函数中,找到处理首页URL的逻辑部分。

通常在文件的第 260 行左右(视版本而定),找到如下代码:

```php if($cfg_rewrite == 'Y') { return $GLOBALS['cfg_plus_dir']."/view-".$aid.'-1.html'; } ```

这不是我们要改的地方。我们需要修改的是返回 index.html 的逻辑。请直接搜索函数 GetIndexUrl,将其修改为:

```php function GetIndexUrl($typeid=0,$typedir='') { global $cfg_basehost,$cfg_indexurl; if(!empty($cfg_indexurl)) { return $cfg_indexurl; } else { return $cfg_basehost; } } ```

通过强制返回 $cfg_basehost(即你在系统基本参数中设置的域名),去除了末尾的 index.html

2. 修改模板调用标签

在模板文件(如 head.htm)中,找到所有调用首页链接的地方。确保不要使用硬编码的 index.html

使用以下标签调用首页链接:

```html 首页 ```

或者使用织梦的栏目导航标签,channelartlistchannel 标签中,typeurl 字段也会自动适配上述PHP代码的修改。

修改完成后,进入后台【生成】 -> 【更新主页HTML】 -> 【更新栏目HTML】 -> 【更新文档HTML】。全站首页链接将统一变为不带 index.html 的纯净域名链接。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图