zoukankan      html  css  js  c++  java
  • dedecms标签(tags)页面伪静态设置

    我们在创建文章的时候经常会设置一些tags,如果发表文章时关键词没添加的话tags也会自动成为文章的关键词,tags是一个不错的功能,通过关键词链接可以快速寻找到相关内容,但是标签页面的url经常会带有一大串的参数,像这样/tags.php?/%C5%DD%C4%AD%CB%DC%C1%CF/,如何将TAGS静态化这样更加利于SEO呢?

    includetaglibtag.lib.php中,在87行找到

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

     改为:

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

    修改分页代码

    include/arc.taglist.class.php,将分页函数替换为:

    /**
    
         *  获取动态的分页列表
         *
         * @access    public
         * @param     int  $list_len  列表宽度
         * @param     string  $listitem  列表样式
         * @return    string
         */
        function GetPageListDM($list_len,$listitem="info,index,end,pre,next,pageno")
        {
            $prepage="";
            $nextpage="";
            $prepagenum = $this->PageNo - 1;
            $nextpagenum = $this->PageNo + 1;
            if($list_len == "" || preg_match("/[^0-9]/", $list_len))
            {
                $list_len = 3;
            }
            $totalpage = $this->TotalPage;
            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>rn";
            $purl = $this->GetCurUrl();
            $basename = basename($purl);
            $tmpname = explode('.', $basename);
            
            $purl = str_replace($basename, '', $purl).urlencode($this->Tag);
            //var_dump($purl);exit;
            //$purl .= "?/".urlencode($this->Tag);
     
            //获得上一页和下一页的链接
            if($this->PageNo != 1)
            {
                $prepage.="<li><a href='".$purl."-$prepagenum'.html>上一页</a></li>rn";
                $indexpage="<li><a href='".$purl."-1.html'>首页</a></li>rn";
            }
            else
            {
                $indexpage="<li><a>首页</a></li>rn";
            }
            if($this->PageNo!=$totalpage && $totalpage>1)
            {
                $nextpage.="<li><a href='".$purl."-$nextpagenum.html'>下一页</a></li>rn";
                $endpage="<li><a href='".$purl."-$totalpage.html'>末页</a></li>rn";
            }
            else
            {
                $endpage="<li><a>末页</a></li>rn";
            }
     
            //获得数字链接
            $listdd="";
            $total_list = $list_len * 2 + 1;
            if($this->PageNo >= $total_list)
            {
                $j = $this->PageNo - $list_len;
                $total_list = $this->PageNo + $list_len;
                if($total_list > $totalpage)
                {
                    $total_list = $totalpage;
                }
            }
            else
            {
                $j=1;
                if($total_list > $totalpage)
                {
                    $total_list = $totalpage;
                }
            }
            for($j; $j<=$total_list; $j++)
            {
                if($j == $this->PageNo)
                {
                    $listdd.= "<li class="thisclass"><a>$j</a></li>rn";
                }
                else
                {
                    $listdd.="<li><a href='".$purl."-$j.html'>".$j."</a></li>rn";
                }
            }
            $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;
        }
    
    

    设置伪静态规则

    我们这里以iis7为例子,设置以下规则:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <configuration>
    
        <system.webServer>
    
            <rewrite>
    
                <rules>
    
                    <rule name="weather1" stopProcessing="true">
    
                        <match url="tags/([^-]+).html$" ignoreCase="true" />
    
                        <conditions logicalGrouping="MatchAll">
    
                            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    
                            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    
                        </conditions>
    
                        <action type="Rewrite" url="/tags.php?/{R:1}" appendQueryString="false" />
    
                    </rule>
    
                    <rule name="weather2" stopProcessing="true">
    
                        <match url="tags/([^-]+)-([0-9]+).html$" ignoreCase="true" />
    
                        <conditions logicalGrouping="MatchAll">
    
                            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    
                            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    
                        </conditions>
    
                        <action type="Rewrite" url="/tags.php?/{R:1}/{R:2}" appendQueryString="false" />
    
                    </rule>
    
                </rules>
    
            </rewrite>
    
        </system.webServer>
    
    </configuration>
    

     可以直接保存为web.config放在站点根目录。

    最后重新生成html页面

  • 相关阅读:
    JavaEE——SpringMVC(11)--拦截器
    JavaEE——SpringMVC(10)--文件上传 CommonsMultipartResovler
    codeforces 460A Vasya and Socks 解题报告
    hdu 1541 Stars 解题报告
    hdu 1166 敌兵布阵 解题报告
    poj 2771 Guardian of Decency 解题报告
    hdu 1514 Free Candies 解题报告
    poj 3020 Antenna Placement 解题报告
    BestCoder5 1001 Poor Hanamichi(hdu 4956) 解题报告
    poj 1325 Machine Schedule 解题报告
  • 原文地址:https://www.cnblogs.com/ytkah/p/3410578.html
Copyright © 2011-2022 走看看