dedecms Tag伪静态 tag标签实现(完整版V5.7)

2016-09-19 15:02:13 织梦DEDECMS系统Tag标题伪静态,html静态化实现,从修改程序到修改伪静态。

一、FTP下载tag对应超链接底层文件

下载/tag.lib.php(路径/include/taglib/tag.lib.php)进行本地修改
下载arc.taglist.class.php(路径/include/arc.taglist.class.php)进行本地修改
下载taglist.htm(路径templets/default/taglist.htm)进行本地修改

修改后伪静态后路径:
//www.html8.com.cn/tags.html
//www.html8.com.cn/tags/居中-1.html
//www.html8.com.cn/tags/居中-2.html

二、修改 /include/taglib/tag.lib.php

找到

$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/"; 

改成

$row['link'] = $cfg_cmsurl."/tags/".rawurlencode($row['keyword'])."-1.html";

三、打开/include/arc.taglist.class.php(修改当前位置导航链接地址)

1、找到(获取当前链接地址)

function GetCurUrl()
{
if(!empty($_SERVER["REQUEST_URI"]))
{
$nowurl = $_SERVER["REQUEST_URI"];
$nowurls = explode("?",$nowurl);
$nowurl = $nowurls[0];
}
else
{
$nowurl = $_SERVER["PHP_SELF"];
}
return $nowurl;
}

修改成

function GetCurUrl()  
{
$nowurl = $_SERVER["PHP_SELF"];
$nowurl=str_replace(".php",'',$nowurl);
return $nowurl;
}

2、找到(修改连接地址路径1)

        $plist  =  '';
if(preg_match('/info/i', $listitem))
{
$plist .= $maininfo.' ';
}
if(preg_match('/index/i', $listitem))
{
$plist .= $indexpage.' ';
}
if(preg_match('/pre/i', $listitem))
{
$plist .= $prepage.' ';
}
if(preg_match('/pageno/i', $listitem))
{
$plist .= $listdd.' ';
}
if(preg_match('/next/i', $listitem))
{
$plist .= $nextpage.' ';
}
if(preg_match('/end/i', $listitem))
{
$plist .= $endpage.' ';
}
return $plist;

改成

$plist  =  '';
if(eregi('info',$listitem))
{
$plist .= $maininfo.' ';
}
if(eregi('index',$listitem))
{
$plist .= $indexpage.' ';
}
if(eregi('pre',$listitem))
{
$plist .= $prepage.' ';
}
if(eregi('pageno',$listitem))
{
$plist .= $listdd.' ';
}
if(eregi('next',$listitem))
{
$plist .= $nextpage.' ';
}
if(eregi('end',$listitem))
{
$plist .= $endpage.' ';
}
return $plist;

3、找到(修改分页链接)

if($j == $this->PageNo)
{
$listdd.= "<li class=\"thisclass\"><a>$j</a></li>\r\n";
}
else
{
$listdd.="<li><a href='".$purl."/$j/'>".$j."</a></li>\r\n";
}

修改成

if($j == $this->PageNo)
{
$listdd.= " $j ";
}
else
{
$listdd.=" <a href='".$purl."-$j.html'>".$j."</a> ";
}

4、找到(修改分页 上一页 下一页路径)

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";
}

修改成

if($this->PageNo != 1)
{
if($this->PageNo == 2){
$prepage.="<a href='".$purl."-1.html'>上一页</a>\r\n";
$indexpage="<a href='".$purl."-1.html'>首页</a>\r\n";
}
else{
$prepage.=" <a href='".$purl."-$prepagenum.html'>上一页</a> ";
$indexpage=" <a href='".$purl."-1.html'>首页</a> ";
}
}
else
{
$indexpage=" 首页 ";
}
if($this->PageNo!=$totalpage && $totalpage>1)
{
$nextpage.=" <a href='".$purl."-$nextpagenum.html'>下一页</a> ";
$endpage=" <a href='".$purl."-$totalpage.html'>末页</a> ";
}
else
{
$endpage="末页";
}

5、找到(修改 共几页 去掉class和html标签)

if($totalpage <= 1 && $this->TotalResult > 0)
{
return "<span class=\"pageinfo\">共1页/".$this->TotalResult."条</span>";
}
if($this->TotalResult == 0)
{
return "<span class=\"pageinfo\">共0页/".$this->TotalResult."条</span>";
}
$maininfo = "<span class=\"pageinfo\">共{$totalpage}页/".$this->TotalResult."条</span>\r\n";
$purl = $this->GetCurUrl();
$purl .= "?/".urlencode($this->Tag);

修改成

if($totalpage <= 1 && $this->TotalResult > 0)
{
return "共1页/".$this->TotalResult."";
}
if($this->TotalResult == 0)
{
return "共0页/".$this->TotalResult."";
}
$maininfo = "共{$totalpage}页/".$this->TotalResult."";
$purl = $this->GetCurUrl();
$purl .= rawurlencode($this->Tag);

6、注意修改生成分页地址错误修改,tag伪静态地址自带问号错误:

注意URL修改
$purl .= "?/".urlencode($this->Tag);
改成
$purl .= "/".urlencode($this->Tag);

四、打开templets/default/taglist.htm(修改当前位置导航链接地址)

找到

<strong>当前位置:</strong>:<a href="{dede:global.cfg_cmsurl/}/">主页</a> > <a href='tags.php'>TAG标签</a> > {dede:field.title /}

修改为

<strong>当前位置:</strong>:<a href="{dede:global.cfg_cmsurl/}/">主页</a> > <a href='/tags.html'>TAG标签</a> > {dede:field.title /}

五、添加伪静态规则:

如果你的空间系统是Windows系统请在httpd.ini 文件里进行添加以下规则:

httpd.ini 文件伪静态规则

  1. RewriteRule ^(.*)/tags\.html $1/tags\.php 
  2. RewriteRule ^(.*)/tags/(.*)-([0-9]+).html $1/tags\.php\?$2/$3 

 .htaccess文件伪静态规则——.htaccess文件下载(避免无法直接新建.htaccess文件)
RewriteEngine On
#如果你写有其他规则上面的省略掉

  1. RewriteBase / 
  2. RewriteRule ^tags\.html$ /tags.php$1 
  3. RewriteRule ^tags/(.*)-([0-9]+).html$ /tags.php?/$1/$2 

如果你的空间系统是IIS下web.config文件,伪静态规则:

<rule name="Imported Rule 1">
<match url="^(.*/)*tags.html$" ignoreCase="false" />
<action type="Rewrite" url="{R:1}/tags.php" />
</rule>

<rule name="Imported Rule 2">
<match url="^(.*/)*tags/([^-]+)-([0-9]+).html$" ignoreCase="false" />
<action type="Rewrite" url="{R:1}/tags.php\?/{R:2}/{R:3}" appendQueryString="false" />
</rule>

最后上次替换网站空间内/include/taglib/目录下tag.lib.php文件,替换修改后的伪静态文件。

HTML8对应Tag伪静态例子:www.html8.com.cn/tags.html

然后进入dede后台更新缓存后。

高级相关:

将dedecms tags标签关键词作为url变成以标签词对应id作为URL实现伪静态html

更新