tag標籤路徑優化

cooldrw2012發表於2016-08-05

大家都知道,Phpcms V9預設的標籤Tag的路徑URL是:

http://www.cmsyou.com/index.php?m=content&c=tag&catid=10&tag=cmsyou

這樣的方式是動態的,怎麼靜態化?讓URL變得更短?

 

修改辦法:

1、修改程式檔案,做到從源頭支援偽靜態,找到檔案:\phpcms\modules\content\tag.php

查詢:

$page = $_GET['page'];
$datas = $infos = array();
$infos = $this->db->listinfo("`keywords` LIKE '%$tag%'",'id DESC',$page,20);
$total = $this->db->number;
if($total>0) {
$pages = $this->db->pages;
foreach($infos as $_v) {
if(strpos($_v['url'],'://')===false) $_v['url'] = $siteurl.$_v['url'];
$datas[] = $_v;
}
}

修改為:

$page = isset($_GET['page'])?$_GET['page']:1;
$datas = $infos = array();
$tag = iconv("utf-8","gb2312",$tag); //CMSYOU轉編碼
$infos = $this->db->listinfo("`keywords` LIKE '%$tag%'",'id DESC',$page,10);
$total = $this->db->number;
define('URLRULE',$siteurl.'/tags/'.$tag.'/'.$catid.'-{$page}.html');//偽靜態後的翻頁修正
if($total>0) {
$pages = pages($total,$page,10,URLRULE,array(),10) ;
foreach($infos as $_v) {
if(strpos($_v['url'],'://')===false) $_v['url'] = $siteurl.$_v['url'];
$datas[] = $_v;
}
}

2、修改偽靜態規則,下面以.htaccess檔案為例說說偽靜態規則。

RewriteRule ^tags/(.*)/([0-9]+)-([0-9]+).html$ index.php?m=content&c=tag&catid=$2&tag=$1&page=$3

新增上面這條偽靜態規則。這樣就修改後,程式上支援偽靜態了:

你的域名/tags/cmsyou標籤名/10-1.html

 

3、在模板前端顯示中,具體修改開啟內容頁模版:content/show.html找到

 

<a href="{APP_PATH}index.php?m=content&c=tag&a=lists&tag={urlencode($keyword)}" class="blue">{$keyword}</a>

修改為:

<a href="{APP_PATH}tags/{$keyword}/{$catid}-1.html" class="cmsyou">{$keyword}</a>

這樣,就三步搞定PC V9關鍵詞標籤Tag的偽靜態。URL更短,更便於優化!

相關文章