织梦cms系统TAG标签和分页伪静态设置教程

织梦cms系统TAG标签和分页伪静态设置教程
现在好多CMS系统都有TAGS标签这项功能,知名的DEDECMS也有,但是它的标签功能很差,不利于seo优化,同时也有很多问题,比如:当前页不存在上一页时,链接为“-1”的问题,还有出现“系统无此标签,可能已经移除”的问题。
今天小编就教大家把标签伪静态(部分资料来源于网络),同时也修复了一些上述提到的BUG。
1.修改前台显示链接
我们这里达到的效果就是使原来/tags.php?keywors更改为/tags/keywords.html。
这里主要修改下调用的标签,在/include/taglib/tag.lib.php中,在87行找到
  1. $row[‘link’] = $cfg_cmsurl.”/tags?”.urlencode($row[‘keyword’]);
将其改为:
  1. $row[‘link’] = $cfg_cmsurl.”/tags/”.urlencode($row[‘keyword’]).”.html”;
2.修改分页代码部分
我们需要修改include/arc.taglist.class.php,找到分页函数,将其替换为:
  1.  /**
  2.  * 获取动态的分页列表
  3.  *
  4.  * @access public
  5.  * @param int $list_len 列表宽度
  6.  * @param string $listitem 列表样式
  7.  * @return string
  8.  */
  9.  function GetPageListDM($list_len,$listitem=“info,index,end,pre,next,pageno”)
  10.  {
  11.  $prepage=“”;
  12.  $nextpage=“”;
  13.  $prepagenum = $this->PageNo – 1;
  14.  $nextpagenum = $this->PageNo + 1;
  15.  if($list_len == “” || preg_match(“/[^0-9]/”, $list_len))
  16.  {
  17.  $list_len = 3;
  18.  }
  19.  $totalpage = $this->TotalPage;
  20.  if($totalpage <= 1 && $this->TotalResult > 0)
  21.  {
  22.  return “<span class=\”pageinfo\”>共1页/”.$this->TotalResult.”条</span>“;
  23.  }
  24.  if($this->TotalResult == 0)
  25.  {
  26.  return “<span class=\”pageinfo\”>共0页/”.$this->TotalResult.”条</span>“;
  27.  }
  28.  $maininfo = “<span class=\”pageinfo\”>共{$totalpage}页/”.$this->TotalResult.”条</span>\r\n”;
  29.  $purl = $this->GetCurUrl();
  30.  $basenamebasename = basename($purl);
  31.  $tmpname = explode(‘.’, $basename);
  32.  $purl = str_replace($basename, ”, $purl).urlencode($this->Tag);
  33.  //var_dump($purl);exit;
  34.  //$purl .“?/”.urlencode($this->Tag);
  35.  //获得上一页和下一页的链接
  36.  //if($this->PageNo != 1) 这是修正上一页为负数的问题
  37.          if($this->PageNo != 1 && $this->PageNo != “”)
  38.  {
  39.  $prepage.=“<li><a href='”.$purl.”-$prepagenum’.html>上一页</a></li>\r\n”;
  40.  $indexpage=“<li><a href='”.$purl.”-1.html’>首页</a></li>\r\n”;
  41.  }
  42.  else
  43.  {
  44.  $indexpage=“<li><a>首页</a></li>\r\n”;
  45.  }
  46.  if($this->PageNo!=$totalpage && $totalpage>1)
  47.  {
  48.  $nextpage.=“<li><a href='”.$purl.”-$nextpagenum.html’>下一页</a></li>\r\n”;
  49.  $endpage=“<li><a href='”.$purl.”-$totalpage.html’>末页</a></li>\r\n”;
  50.  }
  51.  else
  52.  {
  53.  $endpage=“<li><a>末页</a></li>\r\n”;
  54.  }
  55.  //获得数字链接
  56.  $listdd=“”;
  57.  $total_list = $list_len * 2 + 1;
  58.  if($this->PageNo >= $total_list)
  59.  {
  60.  $j = $this->PageNo – $list_len;
  61.  $total_list = $this->PageNo + $list_len;
  62.  if($total_list > $totalpage)
  63.  {
  64.  $total_list = $totalpage;
  65.  }
  66.  }
  67.  else
  68.  {
  69.  $j=1;
  70.  if($total_list > $totalpage)
  71.  {
  72.  $total_list = $totalpage;
  73.  }
  74.  }
  75.  for($j; $j<=$total_list; $j++)
  76.  {
  77.  if($j == $this->PageNo)
  78.  {
  79.  $listdd.= “<li class=\”thisclass\”><a>$j</a></li>\r\n”;
  80.  }
  81.  else
  82.  {
  83.  $listdd.=“<li><a href='”.$purl.”-$j.html’>“.$j.”</a></li>\r\n”;
  84.  }
  85.  }
  86.  $plist = ;
  87.  if(preg_match(‘/info/i’, $listitem))
  88.  {
  89.  $plist .= $maininfo.’ ‘;
  90.  }
  91.  if(preg_match(‘/index/i’, $listitem))
  92.  {
  93.  $plist .= $indexpage.’ ‘;
  94.  }
  95.  if(preg_match(‘/pre/i’, $listitem))
  96.  {
  97.  $plist .= $prepage.’ ‘;
  98.  }
  99.  if(preg_match(‘/pageno/i’, $listitem))
  100.  {
  101.  $plist .= $listdd.’ ‘;
  102.  }
  103.  if(preg_match(‘/next/i’, $listitem))
  104.  {
  105.  $plist .= $nextpage.’ ‘;
  106.  }
  107.  if(preg_match(‘/end/i’, $listitem))
  108.  {
  109.  $plist .= $endpage.’ ‘;
  110.  }
  111.  return $plist;
  112.  }
  113.  3.设置伪静态规则
  114.  我们这里以iis7为例子,设置以下规则:
  115.  Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
  116.  <?xml version=“1.0” encoding=“UTF-8”?>
  117.  <configuration>
  118.  <system.webServer>
  119.  <rewrite>
  120.  <rules>
  121.  <rule name=“weather1” stopProcessing=“true”>
  122.  <match url=“tags/([^-]+)\.html$” ignoreCase=“true” />
  123.  <conditions logicalGrouping=“MatchAll”>
  124.  <add input=“{REQUEST_FILENAME}” matchType=“IsFile” negate=“true” />
  125.  <add input=“{REQUEST_FILENAME}” matchType=“IsDirectory” negate=“true” />
  126.  </conditions>
  127. 132
  128. 132 <action type=“Rewrite” url=“/tags.php?/{R:1}” appendQueryString=“false” />
  129.  </rule>
  130.  <rule name=“weather2” stopProcessing=“true”>
  131.  <match url=“tags/([^-]+)-([0-9]+)\.html$” ignoreCase=“true” />
  132.  <conditions logicalGrouping=“MatchAll”>
  133.  <add input=“{REQUEST_FILENAME}” matchType=“IsFile” negate=“true” />
  134.  <add input=“{REQUEST_FILENAME}” matchType=“IsDirectory” negate=“true” />
  135.  </conditions>
  136.  <action type=“Rewrite” url=“/tags.php?/{R:1}/{R:2}” appendQueryString=“false” />
  137.  </rule>
  138.  </rules>
  139.  </rewrite>
  140.  </system.webServer>
  141.  </configuration>
好了,至此就搞定了。仅供参考学习哦~