前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dedecms标签(tags)页面伪静态设置

dedecms标签(tags)页面伪静态设置

作者头像
ytkah
发布2022-03-14 11:32:01
5.1K0
发布2022-03-14 11:32:01
举报
文章被收录于专栏:ytkahytkah

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

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

代码语言:javascript
复制
$row['link'] = $cfg_cmsurl."/tags?".urlencode($row['keyword']);

改为:

代码语言:javascript
复制
$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword']).".html";

修改分页代码

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

代码语言:javascript
复制
/**

     *  获取动态的分页列表
     *
     * @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为例子,设置以下规则:

代码语言:javascript
复制
<?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页面

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-11-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档