您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程

phpcmsv94X版本tag的伪静态实现方法

书瑶2025-06-12 18:36:20phpcms教程已有3人查阅

导读这两个月来写的文章越来越少了,不是懒,因为太忙了--为客户赶做网站。因为客户指定要使用phpcms v9,还要求使用phpcms v9_42版本实现tag伪静态

这两个月来写的文章越来越少了,不是懒,因为太忙了--为客户赶做网站。因为客户指定要使用phpcms v9,还要求使用phpcms v9_42版本实现tag伪静态,在接手的时候phpcms v9_42是较新版本,而现在phpcms官方已经发布phpcms v9_5.X了。对于phpcms v9实现tag伪静态的实现方法,百度一下就会一大堆,但却是phpcms v9_2X版本的,而且最终实现的结果是:域名/关键词_6_1.html,我看得都觉得别扭--下面我会把URL的尾巴砍得更短些。
phpcms v9_42版本是目前(2013-10-29)较新的版本,相比于phpcms v9_2X的tag模块的代码,改动较大,于是乎,百度得来的phpcms v9_2X版本tag伪静态的实现方法就OUT了。怎么办呢?下面我就把建站过程中整理的phpcms v9_42版本下tag伪静态的实现方法放出来,绝对是较新(2013.12.10)的了。
TAG模块伪静态设置
1、添加url规则
在后台->扩展->url规则里添加一个新的规则用于评论模块,如下所示:
{$tag}_{$page}.html
添加完成后记住前面的id号,比如32。
2、在代码里写入url规则
打开phpcms/modules/content/tag.php文件,找到:
$infos = $keyword_data_db->listinfo($where, '`id` DESC', $page, $pagesize);
这一行往上面添加以下代码:
$urlrules = getcache('urlrules','commons');
$urlrule = $urlrules[32];//调用url规则
然后再把
$infos = $keyword_data_db->listinfo($where, '`id` DESC', $page, $pagesize);
改成
$infos = $keyword_data_db->listinfo($where, '`id` DESC', $page, $pagesize,'','9',$urlrule,Array('tag'=>urlencode($tag)));
目的就是往查询语句里面添加前面设置的url规则。
3、修改模板
打开phpcms\templates\default\content\show.html,找到:
{APP_PATH}index.php?m=content&c=tag&a=lists&tag={urlencode($keyword)}
改成
{APP_PATH}{urlencode($keyword)}_1.html
打开phpcms\templates\default\content\tag.html,把分页标签
1 {$pages}
改成
{str_replace("_0.html","_1.html",$pages)}
4、在.htaccess文件里加入URL规则
在网站的根目录的.htaccess文件(没有的自己建)加入以下URL规则
RewriteRule ^(.*)_([0-9]+).html index.php?m=content&c=tag&a=lists&tag=$1&page=$2
之后显示出来的URL样式如下:http:/w3note.com/关键词_1.html
可能会遇到的问题
在操作系统:Linux ,点击标签时会出现找不到此关键字的提示,原因是转码问题,而在本地测试则没有这种情况。
解决的办法
打开phpcms/modules/content/tag.php
找到
$tag = safe_replace(addslashes($_GET['tag']));
在其下面添加如下代码
$tag = iconv("gb2312","utf-8",$tag); //转编码
如果还不行,不防试着调换"gb2312","utf-8"的位置。

本文标签:

很赞哦! (0)

暂无内容
暂无内容
暂无内容
暂无内容
留言与评论 (共有 0 条评论)
昵称:
匿名发表 登录账号
         
验证码: