织梦的Tag标签默认是动态链接(/tags.php?/关键词/),这不利于SEO,将其静态化(/tags/关键词.html)可以提升搜索引擎对标签页面的收录和权重。

(图片来源网络,侵删)
整个过程主要分为两步:
- 修改程序文件:让织梦生成静态规则的链接。
- 配置服务器伪静态:将用户访问的静态URL请求,转发给实际的动态程序文件处理。
第一步:修改织梦程序文件
我们需要修改两个核心文件,让系统在生成标签链接时使用静态规则。
修改 include/helpers/archive.helper.php 文件
这个文件是处理文章、标签等链接生成的核心文件。
- 找到并打开文件:
/include/helpers/archive.helper.php - 定位代码:在文件中找到
GetTagLink()函数,这个函数就是专门用来生成Tag链接的。 - 修改代码:
- 找到类似这样的代码行:
return $GLOBALS['cfg_phpurl']."/tags.php?/".urlencode($tagname)."/";
- 将其修改为:
return $GLOBALS['cfg_cmspath']."/tags/".urlencode($tagname).".html";
- 代码解释:
$GLOBALS['cfg_phpurl']:指向/php/目录,用于动态链接。$GLOBALS['cfg_cmspath']:指向网站根目录,用于静态链接。/tags/:我们自定义的静态目录,可以修改成你想要的,/taglist/。.html:伪静态的后缀,可以修改成.htm或其他。
- 找到类似这样的代码行:
操作示例:
在 archive.helper.php 中搜索 function GetTagLink,找到函数体,进行上述替换。

(图片来源网络,侵删)
修改 taglib/tag.lib.php 文件
这个文件是标签库文件,用于在模板中调用标签(如 {dede:tag})时生成链接。
- 找到并打开文件:
/include/taglib/tag.lib.php - 定位代码:找到获取链接的代码行,通常在
else部分或类似逻辑中。 - 修改代码:
- 找到类似这样的代码行:
$row['link'] = $GLOBALS['cfg_phpurl']."/tags.php?/".$row['keyword']."/";
- 将其修改为:
$row['link'] = $GLOBALS['cfg_cmspath']."/tags/".$row['keyword'].".html";
- 注意:这个修改确保在首页、列表页等地方通过
{dede:tag}标签调用出来的链接也是静态的。
- 找到类似这样的代码行:
操作示例:
在 tag.lib.php 中搜索 $row['link'],找到并替换。
第二步:配置服务器伪静态规则
修改完程序后,织梦会生成类似 /tags/关键词.html 的链接,但服务器上并不存在这样的真实HTML文件,我们需要通过伪静态规则,告诉服务器当访问这个URL时,实际上去执行 tags.php 并传递相应的参数。
重要提示:请务必在修改伪静态规则前,备份你的服务器配置文件!
根据你的服务器环境,选择对应的规则:
Apache 服务器伪静态规则
-
文件位置:网站根目录下的
.htaccess文件,如果不存在,请手动创建一个。 -
:将以下规则添加到
.htaccess文件中。# 将 RewriteEngine 开启 RewriteEngine On # 织梦Tag伪静态规则 RewriteRule ^tags/(.*)\.html$ /tags.php?/$1/ [L]
-
规则解释:
RewriteEngine On:开启伪静态功能。RewriteRule ^tags/(.*)\.html$ /tags.php?/$1/ [L]:核心规则。^tags/(.*)\.html$:匹配所有以/tags/开头,以.html结尾的URL。 是一个通配符,会捕获“关键词”部分。/tags.php?/$1/:将匹配到的URL重写为/tags.php?/关键词/的形式。$1代表前面捕获到的“关键词”。[L]:Last Rule,表示匹配到这条规则后就不再匹配后续的规则了。
Nginx 服务器伪静态规则
-
文件位置:通常在Nginx的虚拟主机配置文件中,
vhost/your_domain.conf。 -
:在
server { ... }块内添加如下规则。# 织梦Tag伪静态规则 rewrite "^/tags/(.*)\.html$" /tags.php?/$1/ last;
-
规则解释:
rewrite:Nginx的 rewrite 指令。"^/tags/(.*)\.html$":匹配规则,与Apache类似。/tags.php?/$1/:重写目标。last:作用与Apache的[L]类似,停止执行后面的rewrite规则。
IIS 服务器伪静态规则
-
文件位置:网站根目录下的
web.config文件,如果不存在,请手动创建一个。 -
:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="DedeTag" stopProcessing="true"> <match url="^tags/(.*)\.html$" /> <action type="Rewrite" url="tags.php?/{R:1}/" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
第三步:更新缓存和测试
- 更新缓存:登录织梦后台,进入【系统】->【一键更新缓存】,确保所有修改生效。
- 生成Tag HTML:
- 进入【核心】-> 频道管理】。
- 点击【TAG标签】的“更新HTML”按钮。
- 在弹出的页面中,选择“仅重新生成所有标签页”,然后开始执行。
- 这一步会生成所有标签对应的静态HTML文件到你服务器的
/tags/目录下。
- 测试:
- 清除浏览器缓存。
- 在你的网站上点击任何一个标签链接,观察地址栏是否变成了
/tags/关键词.html的形式。 - 检查页面是否能正常显示内容。
- 如果页面无法显示或404,请检查:
- 程序文件修改是否正确。
- 伪静态规则是否添加正确,并是否已重启Web服务(如Apache/Nginx)。
- 网站目录权限是否正确,确保Web服务器有写入
/tags/目录的权限。
| 步骤 | 操作 | 文件/配置 | 关键点 |
|---|---|---|---|
| 1 | 修改程序 | include/helpers/archive.helper.php |
将 tags.php?/ 改为 tags/ |
| 2 | 修改程序 | include/taglib/tag.lib.php |
将 tags.php?/ 改为 tags/ |
| 3 | 配置伪静态 | Apache (.htaccess) |
RewriteRule ^tags/(.*)\.html$ /tags.php?/$1/ [L] |
| 4 | 配置伪静态 | Nginx (.conf) |
rewrite "^/tags/(.*)\.html$" /tags.php?/$1/ last; |
| 5 | 配置伪静态 | IIS (web.config) |
<rule name="DedeTag"> |
| 6 | 更新和测试 | 后台操作 | 更新缓存、生成Tag HTML、测试链接 |
通过以上步骤,你就可以成功地为织梦DedeCMS 5.7实现Tag标签的静态化,从而提升网站的SEO效果。
