POST TIME:2021-05-23 03:00
dedecms的tag標簽是一個很好管理關鍵詞的功能,通過tag標簽可以找到相關的關鍵詞內容。但是dedecms的tag標簽系統默認是http://www.eyoucms.com/tags.php?/tag標簽/如下圖。不利于SEO優化。那么如何將TAGS靜態化呢?(即改成http://www.eyoucms.com/tags/1.html)。
這里主要是通過修改調用的標簽進行偽靜態。
(此圖片來源于網絡,如有侵權,請聯系刪除! )
1、在dedecms程序目錄下找到tags.php。打開找到$PageNo=1到exit();的代碼(如下圖)。把這些代碼替換成如下代碼:
(此圖片來源于網絡,如有侵權,請聯系刪除! )
//tag偽靜態
$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 `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();
2、TAG調用標簽。打開include/taglib/tag.lib.php文件找到$row['link'] =$cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";代碼。將它替換成$row['link'] = "/tags/{$row['id']}.html";(注意符號都是英文,不是中文。不然查找不到,修改不成功)
3、修改分頁代碼。同樣打開include/arc.taglist.class.php,找到//獲得上一頁和下一頁的鏈接。將//獲得上一頁和下一頁的鏈接 至 //獲得數字鏈接之間的分頁函數替換為如下函數:
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"; }
4、設置偽靜態規則。新建一個txt文本,在文本里添加如下偽靜態規則。然后另存為.htaccess上傳到網站根目錄即可(如果已有偽靜態文件.htaccess,那么不要覆蓋.htaccess。直接打開在里面添加如下規則保存即可。)
RewriteEngine on
RewriteBase /
RewriteRule ^tags/([0-9]+)_([0-9]+).html$ tags.php?tagid=$1&PageNo=$2 [L]
RewriteRule ^tags/([0-9]+).html$ tags.php?tagid=$1 [L]
5、最后到dedecms后臺更新一下,至此已完成所有的設置。可以看http://127.0.0.1/tags/1.html如下圖的偽靜態效果。
(此圖片來源于網絡,如有侵權,請聯系刪除! )