当前位置:首页 > 教程 > cms教程 > phpcms > 正文

PHPCMS V9标签TAG伪静态
栏目分类:phpcms   发布日期:2016-04-16   来源:   浏览次数:

关于伪静态的问题,原理上来说,是比较简单的,一方面是程序输出伪静态之后的链接,另一方面是Web服务器根据输出的链接进行URL重写。phpcms v9的tag标签伪静态也是遵循的这个原理,下面就分享一下phpcms的tag标
关于伪静态的问题,原理上来说,是比较简单的,一方面是程序输出伪静态之后的链接,另一方面是Web服务器根据输出的链接进行URL重写。phpcms v9的tag标签伪静态也是遵循的这个原理,下面就分享一下phpcms的tag标签伪静态的方法。

首先是让程序输出tag伪静态之后的URL链接,因为phpcms有一个URL规则管理的功能,我们可以直接在URL规则管理中添加一个URL规则,并记住前面的id号,比如33,这个在后面的代码中会进行调用,如下所示:

{$tag}_{$page}.html

在代码中写入phpcms的URL规则,打开打开phpcms/modules/content/tag.php文件,找到如下代码:

$infos = $keyword_data_db->listinfo($where, ‘`id` DESC’, $page, $pagesize);

这一行往上面添加以下代码:

$urlrules = getcache(‘urlrules’,’commons’);

$urlrule = $urlrules[33];//调用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规则。

通过上面的操作,已经把前端输出的URL改为伪静态的形式了,但是在网站前端输出的话,还需要修改网站的模板文件。这里以phpcms默认的模板文件为例,打开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,把分页标签

{$pages}

改为:

{str_replace(“_0.html”,”_1.html”,$pages)}

最后是让Web服务器对链接进行重写,以Apache为例,在在.htaccess文件里加入如下重写规则:

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″的位置。以上就是phpcms v9的tag标签页伪静态的全部教程了,phpcms的伪静态和织梦DedeCMS的伪静态没什么太大的区别,二者可以相互参考。

相关热词:PHPCMS

Copyright © 2014 聚合分享 版权所有   京ICP备14037269号-1  关于聚合分享 | 广告合作 | 版权声明 | 意见反馈 | 联系方式 | 原创投稿 | 网站地图 | 友情链接
平面设计网页设计编程教程数据库cms教程电脑教程办公软件服务器seo优化