加入收藏
DedeCMS系統TAG標簽偽靜態設置
DedeCMS系統TAG標簽偽靜態設置
支持版本: dedev57
瀏覽:
2012-08-21  來源: 作者:CIT小樂樂  編輯:admin

DedeCMS的系統TAGS確實是一個非常好的功能,通過關鍵詞鏈接可以快速尋找到相關內容,不過很多人希望能夠將TAGS靜態化這樣更加利于SEO,CIT.CN也是對此進行了優化和調整,只不過cit小蟲覺得這種更新內容比較頻繁的列表最好采用偽靜態的方式,這里就分享下技巧。

1.修改前臺顯示鏈接

我們這里達到的效果就是使原來/tags.php?keywors更改為/tags/keywords.html。

這里主要修改下調用的標簽,在includetaglibtag.lib.php中,在87行找到

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

將其改為:

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

2.修改分頁代碼

我們需要修改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;
    }

3.設置偽靜態規則

我們這里以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放在站點根目錄。

4.重新生成html頁面

這個操作就不用說了,全部重新生成下,至此全部修改完畢。

5.預覽查看顯示結果

至此,我們已經完成了所有的設置,可以查看:http://www.cit.cn/tags/PHP.html語言效果。

× 以上內容是否解決了您的問題呢?
我還有問題,我想繼續:
更多最新發布問題
更多熱門問題
發表評論
昵稱:
驗證碼:
點擊我更換圖片
內容:
最新跟帖 >>有疑問的可以跟貼提問!
月排行
總排行
英超比赛下注 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>