完美實現dedecms的TAG標簽偽靜態(適用Apache和IIS服務器)

作者:思帽網絡     發布時間:2019-07-10 12:04:37

      說起dedecms的tag標簽偽靜態化,很多剛接觸的小伙伴都很頭疼吧,網上找了一大堆資料,實現是可以,但總是不可避免的有一些小錯誤,導致無法完美運行,今天西寧網站建設思帽網絡為大家帶來全網最完美無錯的tag標簽偽靜態方法,快來記筆記吧!

第一步,和你在網上找到的方法一樣,找到根目錄下面的tag.php中的這段代碼,如下:

    

QQ圖片20190710114455.png

將其替換成如下代碼:

//偽靜態化
$tagid = (isset($tagid) && is_numeric($tagid)) ? $tagid : 0;
$PageNo = (isset($PageNo) && is_numeric($PageNo)) ? $PageNo : 1;
if ($tagid =="0") {
$dlist = new TagList($tag, 'tag.htm');
$dlist->Display();}
else{$row = $dsql->GetOne("SELECT tag FROM `dede_tagindex` WHERE id ={$tagid}");
if (!is_array($row)) {ShowMsg('系統無此tag', '-1');
exit();}
$tag = FilterSearch($row['tag']);
$dlist = new TagList($tag, 'taglist.htm');
$dlist->Display();}
exit();


第二步,在include\taglib中找到tag.lib.php文件的$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";(大約在88行左右),替換成  $row['link'] =  "/tags/{$row['id']}.html";


第三步,就是修改我們的分頁代碼,找到include文件下的arc.taglist.class.php中的GetPageListDM函數(重點:區別于網上其它方法),請用以下代碼替換:

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>\r\n";
        
        $basename = $this->TagInfos;
        $purl = $basename['id'];

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

        //獲得數字鏈接
        $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>\r\n";
            }
            else
            {
                $listdd.="<li><a href='".$purl."-$j.html'>".$j."</a></li>\r\n";
            }
        }
        $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;
    }


第四步,設置Apache的.htaccess中的規則(完美解決),如下:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On

  RewriteRule ^tags/([0-9]+)-([0-9]+).html$        tags.php?tagid=$1&PageNo=$2 [L]
  RewriteRule ^tags/([0-9]+).html$                tags.php?tagid=$1 [L]
</IfModule>

第五步,設置IIs的web.config中的規則(完美解決),如下:

<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?tagid={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?tagid={R:1}&amp;PageNo={R:2}" appendQueryString="false" />
                </rule>
              
            </rules>
        </rewrite>
    </system.webServer>
</configuration>


好了,以上就是思帽網絡為廣大網站建設者提供的最完美解決方案,如有任何交流都可以聯系我們,請時刻關注我們的官網(http://www.357136.tw)動態!


服務支持

青海思帽網絡珍惜您每一次在線詢盤,任何有關網絡問題有問必答,用專業的態度,貼心的服務。

讓您感受西寧網站建設公司服務的五星級服務!

西寧網站建設

網站建設流程

網站制作流程從提出需求到網站制作報價,再到網頁制作,每一步都是規范和專業的

西寧網站建設

網絡服務常見問題

提供什么是網站定制?你們的報價如何?等網站建設常見問題。

西寧網站建設

網絡服務保障

網站制作不難,難的是一如既往的熱情服務及技術支持。我們知道:做網站就是做服務,就是做售后

pt电子奖池触发规律 急速赛车走势图 水果拉霸游戏下载送20元 竞彩足球比分直播现场500完整n 足彩比分 狗币钱包怎么用 三人麻将怎么打只有筒和条 老时时彩怎么做代理 十一运夺金走势图爱彩人 500万彩票网足球比分 黑龙江快乐十分尾值分布图 棋牌代理群 捕鱼王游戏 双色球怎么叫复式投注 体彩福建22选5第18178期 河北11选5走势图593 捷报比分网即时比分