默认情况下,DedeCMS的tag页面是动态的,链接格式为 tags.php?/关键词/,这种动态链接不利于SEO,因为搜索引擎更喜欢结构清晰、包含关键词的静态URL。

实现tag静态化主要分为两大步:
- 开启伪静态功能:让服务器将形如
/tags/关键词/的请求,伪装成tags.php?/关键词/来处理。 - 修改模板文件:将页面中的tag链接从动态的
tags.php改为静态的/tags/关键词/格式。
下面以最常见的 Apache服务器 和 Nginx服务器 为例,分步说明整个过程。
第一步:开启Tag伪静态
这一步的核心是创建一个规则文件,告诉服务器如何处理tag请求。
Apache服务器 (.htaccess)
这是最常见的方式,尤其适用于虚拟主机用户。

-
找到或创建
.htaccess文件- 这个文件通常位于你的网站根目录()下。
- 如果没有,请新建一个文本文件,命名为
.htaccess(注意文件名前有一个点)。
-
添加伪静态规则
- 将以下规则代码添加到
.htaccess文件中。 - 注意:如果你的
.htaccess文件中已有其他规则(如文章列表页的伪静态规则),请将这些规则追加到现有规则的后面,不要覆盖。
# Tag伪静态规则 RewriteRule ^tags/(.*)$ tags.php?/$1 [R=301,L]
- 将以下规则代码添加到
-
检查并启用
mod_rewrite模块- 伪静态功能依赖于Apache的
mod_rewrite模块,大多数虚拟主机环境都已默认开启。 - 如果你的服务器是VPS或独立主机,并且不确定是否开启,可以检查一下
.htaccess文件中是否已有类似RewriteEngine On的指令,如果没有,请在规则代码前加上它。
RewriteEngine On RewriteRule ^tags/(.*)$ tags.php?/$1 [R=301,L]
- 伪静态功能依赖于Apache的
-
保存并上传
(图片来源网络,侵删)- 保存修改后的
.htaccess文件,并上传到网站根目录。
- 保存修改后的
Nginx服务器
如果你使用的是Nginx,需要修改其配置文件(通常是 nginx.conf 或你网站配置文件,如 vhost/your_domain.conf)。
-
编辑Nginx配置文件
使用SSH登录你的服务器,找到对应的配置文件。
-
在
server块中添加规则- 在你的网站
server配置块中,添加以下rewrite规则。
# 在 server { ... } 块内添加 rewrite "^/tags/(.*)$" /tags.php?/$1 last; - 在你的网站
-
重启Nginx服务
- 保存配置文件后,执行以下命令使配置生效。
# 根据你的系统选择执行 # CentOS / RHEL systemctl restart nginx # Ubuntu / Debian systemctl restart nginx # 或者 /etc/init.d/nginx restart
第二步:修改模板文件,生成静态链接
伪静态规则已经设置好,现在需要告诉织梦,在页面上生成什么样的链接。
你需要修改两个地方:
- 文章页模板:修改文章内容页的
tag标签显示方式。 - 列表页/首页模板:修改调用tag列表的标签(如果有的话)。
修改文章页模板 (article_article.htm)
- 进入DedeCMS后台 -> 模板 -> 默认模板管理。
- 找到并打开文章内容页模板,文件名通常是
article_article.htm。 - 找到调用文章标签(tag)的代码,它通常是这样的:
{dede:tag type='current'/} - 将它替换为下面的代码,这段代码会手动拼接出我们想要的静态URL格式。
<a href='/tags/{dede:tag type='current' function='strtolower(@me)'/}/'>{dede:tag type='current'/}</a>function='strtolower(@me)':这是一个自定义函数,确保tag关键词是小写的,这有助于URL的规范性和统一性,如果你的关键词包含大写字母且希望保留,可以去掉这个函数。/tags/:这是我们在伪静态规则中定义的路径。{dede:tag type='current'/}:这是获取当前文章的tag关键词。
修改其他模板中的Tag调用(可选)
如果你在首页、列表页或其他自定义模板中使用了 {dede:tag} 标签来调用热门tag或相关tag,也需要一并修改。
调用热门tag的代码可能是:
{dede:tag sort='hot' getall='0' limit='10'}
<a href="[field:link/]">[field:tagname/]</a>
{/dede:tag}
这里的 [field:link/] 默认是动态的 tags.php?/关键词/,我们需要修改它。
修改方法:
将 [field:link/] 替换为手动拼接的静态链接:
{dede:tag sort='hot' getall='0' limit='10'}
<a href="/tags/[field:tagname function='strtolower(@me)'/]/">[field:tagname/]</a>
{/dede:tag}
这里的 [field:tagname/] 对应 tagname 字段,我们直接用它来拼接URL。
第三步:更新缓存和生成Tag静态页面
修改完模板后,最后一步是让织梦生成这些静态的tag页面。
-
进入“文档关键词维护”
- 在DedeCMS后台,找到 核心 -> 批量维护 -> 文档关键词维护。
-
更新Tag
- 在这个页面,你可以看到所有你网站上的tag列表。
- 点击 “更新Tag主页”,这会生成一个
/tags/index.html页面,用于展示所有tag的列表。 - 点击 “更新Tag列表页”,这一步非常重要!它会遍历每一个tag,并生成对应的静态HTML文件,
/tags/关键词.html。 - 注意:如果你的tag数量非常多(成千上万个),生成过程可能会比较耗时,服务器负载也会升高,建议在网站访问量较低的时候进行。
第四步:检查与验证
完成以上所有步骤后,你的tag静态化就基本完成了,现在需要验证一下。
-
检查链接格式:
- 打开任意一篇文章,检查文章下方的tag链接,是否已经变成了
/tags/关键词/的格式。 - 点击这个链接,看是否能正常跳转到tag列表页。
- 打开任意一篇文章,检查文章下方的tag链接,是否已经变成了
-
检查伪静态是否生效:
- 在浏览器中访问
http://你的域名/tags/关键词/。 - 查看浏览器地址栏,URL是否保持不变(没有变成
tags.php?/...)。 - 查看网页源代码,确认URL是静态的。
- (可选)使用F12开发者工具的“网络”面板,查看该请求的HTTP状态码,如果伪静态配置正确且301重写设置无误,状态码应该是
301或200。
- 在浏览器中访问
-
检查搜索引擎收录:
过一段时间后,可以查看百度站长平台或Google Search Console,看看搜索引擎是否已经开始收录这些新的静态tag页面。
常见问题与注意事项
- 404错误:如果点击tag链接后出现404错误,请检查:
.htaccess文件是否正确上传到了根目录。- Apache的
mod_rewrite模块是否已开启。 - Nginx的配置是否正确并已重启。
- 确保你访问的tag关键词在数据库中是存在的。
- URL重复:静态化前
/tags/关键词/和动态的tags.php?/关键词/会同时存在,通过.htaccess中的R=301规则,我们可以将动态链接301重定向到静态链接,将权重集中,避免SEO问题。 - 性能问题:tag页面数量多,生成时会占用服务器资源,如果tag量极大,可以考虑不生成所有tag的静态页,或者只生成热门tag的静态页。
- 标签包含特殊字符:如果你的tag关键词中包含空格、
&、 等特殊字符,可能会影响URL的生成和解析,建议在发布内容时,避免使用这类字符作为tag,或者在调用时进行URL编码处理(但通常小写字母、数字、下划线是安全的)。
通过以上步骤,你就可以成功地为织梦DedeCMS的tag实现静态化,从而提升网站的SEO友好度。
