织梦5.7tag标签静态化

99ANYc3cd6
预计阅读时长 15 分钟
位置: 首页 织梦建站 正文

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

织梦5.7tag标签静态化
(图片来源网络,侵删)

整个过程主要分为两步:

  1. 修改程序文件:让织梦生成静态规则的链接。
  2. 配置服务器伪静态:将用户访问的静态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,找到函数体,进行上述替换。

织梦5.7tag标签静态化
(图片来源网络,侵删)

修改 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>

第三步:更新缓存和测试

  1. 更新缓存:登录织梦后台,进入【系统】->【一键更新缓存】,确保所有修改生效。
  2. 生成Tag HTML
    • 进入【核心】-> 频道管理】
    • 点击【TAG标签】的“更新HTML”按钮。
    • 在弹出的页面中,选择“仅重新生成所有标签页”,然后开始执行。
    • 这一步会生成所有标签对应的静态HTML文件到你服务器的 /tags/ 目录下。
  3. 测试
    • 清除浏览器缓存。
    • 在你的网站上点击任何一个标签链接,观察地址栏是否变成了 /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效果。

-- 展开阅读全文 --
头像
c语言switch case语句
« 上一篇 2025-12-27
c语言 system pause
下一篇 » 2025-12-27

相关文章

取消
微信二维码
支付宝二维码

目录[+]