如何实现phpcms v9_4X版本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文件,找到:
1 |
$infos = $keyword_data_db ->listinfo( $where , '`id` DESC' , $page , $pagesize ); |
这一行往上面添加以下代码:
1 |
$urlrules = getcache( 'urlrules' , 'commons' ); |
2 |
$urlrule = $urlrules [32]; //调用url规则 |
然后再把
1 |
$infos = $keyword_data_db ->listinfo( $where , '`id` DESC' , $page , $pagesize ); |
改成
1 |
$infos = $keyword_data_db ->listinfo( $where , '`id` DESC' , $page , $pagesize , '' , '9' , $urlrule ,Array( 'tag' =>urlencode( $tag ))); |
目的就是往查询语句里面添加前面设置的url规则。
3、修改模板
打开phpcms\templates\default\content\show.html,找到:
1 |
{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 } |
改成
1 |
{ str_replace ( "_0.html" , "_1.html" , $pages )} |
4、在.htaccess文件里加入URL规则
在网站的根目录的.htaccess文件(没有的自己建)加入以下URL规则
1 |
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
找到
1 |
$tag = safe_replace( addslashes ( $_GET [ 'tag' ])); |
在其下面添加如下代码
1 |
$tag = iconv( "gb2312" , "utf-8" , $tag ); //转编码 |
如果还不行,不防试着调换"gb2312","utf-8"的位置。
转载:w3note.com/web/133.html
如何实现phpcms v9_4X版本tag的伪静态?的更多相关文章
- phpcms v9版本二次开发四步曲
今晚看了一下PHPCMS V9版本,做一个实例抛砖引玉,其实很简单,以下是二次开发的一个实例以旅游模块为例1. 在phpcms\modules目录下建立一个文件夹tour2. 在phpcms\m ...
- docker安装指定版本TAG的镜像
在docker中安装镜像,一般过程是,docker search 软件名称. 本文以tomcat为例,讲解下载指定版本TAG的tomcat. 搜索tomcat镜像 $ sudo docker sear ...
- PHPCMS列表页伪静态
phpcms v9内容管理系统可以方便建立网站,并且生成静态化,但是列表页往往采取伪静态,因为列表页太多每发一篇文章就生成一遍静态效率太低,phpcms列表页及分页伪静态规则如何设置呢? phpcms ...
- PHPCMS V9 如何启用伪静态
最近在研究CMS时候,首先是使用DEDECMS,后来又转到了PHPCMS,感觉后者架构更加合理,而前者主要是模板众多,故使用者多一些,不过我都是需要自己写模板,那就无所谓了. 玩各种CMS我喜欢首先看 ...
- PHPCMS v9 在windows2008系统 IIS7 下设置伪静态的方法
安装环境:windows2008+IIS7.0+PHP5+MYSQL5 一.安装phpcms v9程序,设置伪静态.如图: 二.安装IIS7官方Url重写模块 1.先到IIS官方下载模块 下载地址:h ...
- phpcms tag页调用缩略图
\phpcms\modules\content\tag.php 找到: 'title, description, url, inputtime, style' 改成:'title, thumb, de ...
- git上拉取tag,识别最新tag在此版本上新增tag
通过shell 脚本自动获取最新tag,并输入最新版本后,推到git上 # 拉取分支上现有的tags git fetch --tags echo -e "所有tag列表" git ...
- phpcms笔记
一.建立虚拟站点 1.先更改www目录下的站点名称,再找到apache, 打开"Apache2\conf\extra"下的"httpd-vhosts.conf" ...
- 织梦系统dedecms如何开启伪静态
做为一名网站建设工程师,必须要考虑到网站优化方面的工作,那么选择CMS系统的时候,有良好的网站 优化功能就是一个好的CMS的标准之一,而系统是否支持伪静态,则是URL优化的工作之一,而织梦系统能良好的 ...
随机推荐
- STOMP协议规范--转载
原文地址:http://simlegate.com/2013/10/17/stomp-specification-1.2/ 摘要 STOMP是一个简单的可互操作的协议, 被用于通过中间服务器在客户端之 ...
- 琐碎-到底要不要SSH免密码设置
搭建了很多次hadoop2.2.0了,尝试过很多不同的启动方法.配置参数.位置,其中涉及到到底要不要配置SSH免密码登录的问题 先是搞清楚为什么需要SSH免密码登录 SSH免密码登录操作步骤: ... ...
- Maven学习小结(四 聚合与继承)
1.聚合 一次构建多个项目模块. 2.继承 为了消除重复,把很多相同的配置提取出来,例如groupid和version: 2.1 Maven中可以继承的POM元素 groupId :项目组 ID ,项 ...
- Football
Football Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2882 Accepted: 1466 Descript ...
- Android进阶笔记15:ListView篇之图片优化
1.图片异步加载: (1)处理图片的方式: 如果ListView中自定义的Item中有涉及到大量图片的,一定要对图片进行细心的处理,因为图片占的内存是 ListView 项中最头疼的,处理图片的方法大 ...
- Python Virtualenv 虚拟环境
在python2和python3共存的机器上做开发,要想互不干扰,虚拟环境很重要. Debian7 默认是python2.7.3,装好python3.4.1后怎么建立虚拟环境呢? $ pyvenv m ...
- hibernate 插件安装
安装hibernate插件 1,help--install new software work with选择All Available Sites 搜索框输入hibernate 会出现所有hiber ...
- Angular学习资源汇集
网站 官网:www.angularjs.org 中文官网(社区):www.angularjs.cn 博客 流浪猫的窝 粉丝日记:AngularJS体验式编程系列文章 一介布衣 文档 GitCafe A ...
- linux内存查看
一般用free命令,显示整体内存使用状况: 第二行从OS角度,used包括内核+应用+buffers+cached使用的内存,buffers/cached是磁盘缓存的大小 第三行从应用角度,可用内存= ...
- [转]每次打开IE9就会跳出管理加载项的窗口
当您打开IE9就跳出管理加载项的窗口,这一般是由于使用优化软件对系统进行优化清理后导致了注册表的错误.上次我们就为大家介绍了关于IE9启动后自动弹出管理加载项窗口的问题,这两个问题非常类似,引发问题的 ...