PHPCMS V9Tag伪静态

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

4、在.htaccess文件里加入URL规则

在网站的根目录的.htaccess文件(没有的自己建)加入以下URL规则
RewriteRule ^(.*)_([0-9]+).html index.php?m=content&c=tag&a=lists&tag=$1&page=$2

最后显示出来的URL样式如下:http://ABC.com/关键词_1.html

可能会遇到的问题
在操作系统:Linux ,点击标签时会出现找不到此关键字的提示,原因是转码问题,而在本地测试则没有这种情况。
解决的办法
打开phpcms/modules/content/tag.php
找到
$tag = safe_replace(addslashes($_GET['tag']));
在其下面添加如下代码
$tag = iconv("gb2312","utf-8",$tag); //转编码
如果还不行,不防试着调换"gb2312","utf-8"的位置。
经过测试代码均可用,敬请使用。修改的时候如果网站不是使用默认模板default,而是使用自定义模板,以上修改默认模板的地方就需要修改自定义模板代码。