适合于phpcms最新版,nginx服务器。 1. [代码] [PHP]代码 看了网上很多的关于phpcms tag伪静态设置的文章,都是做成http://host/**.html的形式。个人还是比较喜欢类似http://host/tag/**的样式。TAG模
1. [代码][PHP]代码
看了网上很多的关于phpcms tag伪静态设置的文章,都是做成http://host/**.html的形式。个人还是比较喜欢类似http://host/tag/**的样式。TAG模块伪静态设置方法如下: 1、在后头添加添加url规则 在后台-<扩展-<url规则里添加一个新的url规则用于tag,如下所示: {$tag}_{$page} 添加完成后记住前面的id号,比如我创建的ID号是31。 2、在系统tag.php代码里写入url规则 打开phpcms/modules/content/tag.php文件,找到: $infos = $keyword_data_db->listinfo($where, '`id` DESC', $page, $pagesize); 这一行上面添加以下代码: $urlrules = getcache('urlrules','commons'); $urlrule = $urlrules[31];//调用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)} 改成 /tag/{urlencode($keyword)} 修改分页标签,为的是标签搜索出来的列表url里面不出现0, 打开phpcms\templates\default\content\tag_list.html,把分页标签 {$pages} 改成 {str_replace("0","1",$pages)} 4、在.htaccess文件里加入URL规则 在网站的根目录的.htaccess文件(没有的自己建)加入以下URL规则 rewrite ^/tag/(.*)_([0-9]+) /index.php?m=content&c=tag&a=lists&tag=$1&page=$2; rewrite ^/tag/(.*) /index.php?m=content&c=tag&a=lists&tag=$1&page=$2; 如果是单独的服务器请修改相应的配置文件。 最后显示出来的URL样式如下:http://www.xinchaoyue.com/tag/hp 遇到的问题: 点击tag关键词之后tag页面收到的关键词不一样,在网上查了一下很多人说是编码的问题。测试转换编码无法解决问题。最后通过去掉$infos = $keyword_data_db-<listinfo($where, '`id` DESC', $page, $pagesize,'','9',$urlrule,Array('tag'=<urlencode($tag)));里面的urlencode函数解决。 更多tag实例演示请到www.xinchaoyue.com查看。