dedecms获取首页/列表页/分页/内容页当前页面链接,添加canonical标签网址规范化

  • 一一得一
  • 技术分享
  • Apr 08, 2022

canonical标签是页面html代码head部分的一个标签,2009年2月由搜索引擎们推出,主要用于解决网址规范化问题。

刚好建站时用到这个标签,下面叫大家dedecms如何获取首页/列表页/分页/内容页的当前页面链接,希望对有需要的同学有帮助。

canonical标签的使用方法,就是在HTML文件的head头部加上这样一段代码:

<link rel=”canonical” href=”https://www.yiyideyi.top/Share/canonical.html” />

dedecms目前内容页和列表页及列表分页还不能直接获取当前页面的链接,不过可以通过系统标签拼凑获得。


首页<link rel="canonical" href="{dede:global.cfg_basehost/}">

注意:后台系统设置的站点根目录网址设置为不带斜杠结尾的链接

canonical标签设置

首页获取当前页面链接结果<link rel="canonical" href="https://www.yiyideyi.top">



列表页:<link rel="canonical" href="{dede:global.cfg_basehost/}{dede:field.typeurl/}">

这里需要修改一下系统文件,才能实现列表页和分页的当前链接获取。

修改:/include目录下的 arc.listview.class.php
找到这一行
$this->dtp->SaveTo($makeFile);
//如果启用远程发布则需要进行判断

在它上面直接插入代码段:

// Canonical标签 列表页 2021
            
            $xiegan = '/'; // 给列表栏目添加/结尾更加符合seo
            
            if($this->PageNo == 1) {
 
                $this->Fields['typeurl'] = MfTypedir($this->Fields['typedir'].$xiegan);
            
            } else {
            
                $this->Fields['typeurl'] = $murl;
            
            }
            
            GLOBAL $cfg_multi_site,$cfg_basehost;
            
            if($cfg_multi_site=='Y') {
            
                
                $this->Fields['typeurl'] = $cfg_basehost.$this->Fields['typeurl'];
            
            }
            
            //初步给固定值的标记赋值
            
            $this->ParseTempletsFirst();        
            
            $this->dtp->SaveTo($makeFile);
            
// Canonical标签 列表页 2022
 

列表页获取当前页面链接结果<link rel="canonical" href="https://www.yiyideyi.top/Share/">

列表页分页获取当前页面链接结果<link rel="canonical" href="https://www.yiyideyi.top/Share/list_2.html">





内容页:<link rel="canonical" href="{dede:global.cfg_basehost/}{dede:field.arcurl/}">

内容页只需用系统标签拼凑一下就可以实现

内容页获取当前页面链接结果<link rel="canonical" href="https://www.yiyideyi.top/Share/canonical.html">

经过上面的修改dedecms就可以完美的获取当前页面链接,为网页添加rel = canonical标签网址规范化。

打赏