zoukankan      html  css  js  c++  java
  • 如何实现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 emplatesdefaultcontentshow.html,找到:

    1 {APP_PATH}index.php?m=content&c=tag&a=lists&tag={urlencode($keyword)}

    改成

    {APP_PATH}{urlencode($keyword)}_1.html

    打开phpcms emplatesdefaultcontent ag.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

  • 相关阅读:
    [APM] OneAPM 云监控部署与试用体验
    Elastic Stack 安装
    xBIM 综合使用案例与 ASP.NET MVC 集成(一)
    JQuery DataTables Selected Row
    力导向图Demo
    WPF ViewModelLocator
    Syncfusion SfDataGrid 导出Excel
    HTML Table to Json
    .net core 2.0 虚拟目录下载 Android Apk 等文件
    在BootStrap的modal中使用Select2
  • 原文地址:https://www.cnblogs.com/wawahaha/p/3766822.html
Copyright © 2011-2022 走看看