A-A+
phpcms v9 标签 tag 静态化制作
phpcms v9 标签 tag 的链接实在是够长,而且还特不利于 seo 的优化,全是动态链接,看来这是比较符合 phpcms v9 制作的一贯作风呀,一看就知道是由 phpcms 制作的,那么如何把标签 tag 的动态链接转化为静态链接呢,至少要把 url 的链接变得更短一些吧,下面夏日博客就来教下大家如何将 tag进行静态化.
找到 tag 的控制文件:\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; } }
现在代码结构链接已经变短了,且链接的是 .html 后缀的网址,但现在是打不开的,我们还需要进行伪静态规则的建立,在根目录下建立 .htaccess 文件,如果存在的话就不用建立了,添加如下的伪静态规则:
RewriteRule ^tags/(.*)/([0-9]+)-([0-9]+).html$ index.php?m=content&c=tag&catid=$2&tag=$1&page=$3
这样在前台的 url 就变成了这样的形式: 你的域名/tags/xiariboke标签名/10-1.html
注意一点,在使得 .htaccess 文件时,注意自己的根目录是否支持,另外还需要在前台更改一下模板,打开文章页模板 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="xiariboke">{$keyword}</a>
OK,现在再去前台看一下自己站点的 tag 链接网址是否已经变短且伪静态化了呢。
一念之差没有选择PhpCms 不然一定也是博主这里的常客(在用wp还对PhpCms这样熟练!)
分享了博主的这篇技术博文, ^_^