织梦tags标签页伪静态调用id

织梦tags伪静态调用id展示样式:/tags/id.html,织梦tags标签伪静态后有利于SEO优化,方便搜索引擎对全站内容的抓取和竞争网站长尾关键词的排名;简洁的tags标签URL不仅对搜索引擎友好,而且有助于改善网站的收录量,还可以改善用户体验。
织梦tags标签页伪静态调用id

织梦tags标签页伪静态调用id

  1. 在网站根目录下找到tags.php。打开找到$PageNo=1到exit();,如下代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $PageNo = 1;

    if(isset($_SERVER['QUERY_STRING']))
    {
        $tag = trim($_SERVER['QUERY_STRING']);
        $tags = explode('/', $tag);
        if(isset($tags[1])) $tag = $tags[1];
        if(isset($tags[2])) $PageNo = intval($tags[2]);
    }
    else
    {
        $tag = '';
    }

    $tag = FilterSearch(urldecode($tag));
    if($tag != addslashes($tag)) $tag = '';
    if($tag == '') $dlist = new TagList($tag, 'tag.htm');
    else $dlist = new TagList($tag, 'taglist.htm');
    $dlist->Display();
    exit();

    把以上代码替换成如下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $tagid = (isset($tagid) && is_numeric($tagid)) ? $tagid : 0;
    $PageNo = (isset($PageNo) && is_numeric($PageNo)) ? $PageNo : 1;
    if ($tagid =="0") {
    $dlist = new TagList($tag, 'tag.htm');
    $dlist->Display();}
    else{$row = $dsql->GetOne("SELECT tag FROM `#@__tagindex` WHERE id ={$tagid}");
    if (!is_array($row)) {ShowMsg('系统无此tag', '-1');
    exit();}
    $tag = FilterSearch($row['tag']);
    $dlist = new TagList($tag, 'taglist.htm');
    $dlist->Display();}
    exit();
  2. 修改tag标签调用的URL,打开/include/taglib/tag.lib.php文件找到如下代码,并将其注释或者删除
    1
    $row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";

    换成如下代码:

    1
    $row['link'] = "/tags/{$row['id']}.html";
  3. 修改tags标签分页代码。打开/include/arc.taglist.class.php,找到如下代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    if($this->PageNo != 1)
    {
    $prepage.="<li><a href='".$purl."/$prepagenum/'>上一页</a></li>\r\n";
    $indexpage="<li><a href='".$purl."/1/'>首页</a></li>\r\n";
    }
    else
    {
    $indexpage="<li><a>首页</a></li>\r\n";
    }
    if($this->PageNo!=$totalpage && $totalpage>1)
    {
    $nextpage.="<li><a href='".$purl."/$nextpagenum/'>下一页</a></li>\r\n";
    $endpage="<li><a href='".$purl."/$totalpage/'>末页</a></li>\r\n";
    }
    else
    {
    $endpage="<li><a>末页</a></li>\r\n";
    }

    将其替换为

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    if($this->PageNo != 1)
    {
    $prepage.="<li><a href='".$purl."/$prepagenum/'>上一页</a></li>\r\n";
    $indexpage="<li><a href='".$purl."/1/'>首页</a></li>\r\n";
    }
    else
    {
    $indexpage="<li><a>首页</a></li>\r\n";
    }
    if($this->PageNo!=$totalpage && $totalpage>1)
    {
    $nextpage.="<li><a href='".$purl."/$nextpagenum/'>下一页</a></li>\r

    \n"
    ;
    $endpage="<li><a href='".$purl."/$totalpage/'>末页</a></li>\r\n";
    }
    else
    {
    $endpage="<li><a>末页</a></li>\r\n";  }
  4. 设置伪静态规则。
    Apache服务器,在网站根目录建立一个 .htaccess文件,并把以下代码写入保存

    1
    2
    3
    4
    RewriteEngine on
    RewriteBase /
    RewriteRule ^tags/([0-9]+)_([0-9]+).html$ tags.php?tagid=$1&PageNo=$2 [L]
    RewriteRule ^tags/([0-9]+).html$ tags.php?tagid=$1 [L]

    宝塔Nginx服务器,在 宝塔管理后台》网站 》设置 》 伪静态 填入下列规则

    1
    2
    rewrite ^/tags/([0-9]+)_([0-9]+).html$ /tags.php?tagid=$1&PageNo=$2 last;
    rewrite ^/tags/([0-9]+).html$ /tags.php?tagid=$1 last;
  5. 最后到dedecms后台更新一下,至此已完成所有的设置。
    注意:如果关键字tags中含有符号,可能会有如下提示,下一篇文章会解决该问题,系统无此标签,可能已经移除。解决方法是在根目录tags.php文件,找到代码,大概在25行

    1
     $tag = FilterSearch(urldecode($tag));

    直接替换成为

    1
    $tag = urldecode($tag);

可能问题:标签中的大写字母,同样是修改目录tags.php文件,找到代码,大概在15行,

1
$tag = trim($_SERVER['QUERY_STRING']);

直接替换成为

1
$tag = strtolower(trim($_SERVER['QUERY_STRING']));

至此实现织梦tag标签页id伪静态的效果。