zoukankan      html  css  js  c++  java
  • phpcms v9 栏目伪静态完全自定义为栏目英文目录名

    1. 1,后台增加url规则,增加后.导航上,或分页号上,会自动替换为静态的样式.类似www.abc.com/news/2/ 2表示页码  
    2. phpcms v9 的后台扩展,url规则,添加两个规则,  
    3.   
    4. 一个是名称为category的规则,规则的前面的斜线可以去掉,不过可能影响分页问题   
    5. /{$catdir}/|/{$catdir}/{$page}/  
    6. url示例为 www.abc.com/news/  
    7. 一个是名称为show规则  
    8. {$catdir}/{$id}.html|{$catdir}/{$id}_{$page}.html  
    9. 示例为www.abc.com/news/99.html  
    10.   
    11.   
    12.   
    13. 然后,找到想伪静态的栏目,修改.生成html设置,生成Html全设置为否,url规则选择自己刚才设置的.保存,  
    14.   
    15. 最后更新栏目缓存及批量更新url,不更新无效  
    16.   
    17. 2,如果为apache的服务器空间,伪静态规则如下,注意,要保存在.htaccess 文件中,并上传到网站根目录中,其它规则自己转换  
    18.   
    19.   
    20. RewriteEngine on  
    21. #静态文件以及API目录不需要伪静态  
    22. RewriteRule ^(statics|api|uploadfile)(.*) - [L]  
    23. #栏目页  
    24. RewriteRule ^([0-9A-Za-z_]*)$ index.php?m=content&c=index&a=lists&catdir=$1  
    25. RewriteRule ^([0-9A-Za-z_]*)/$ index.php?m=content&c=index&a=lists&catdir=$1  
    26. RewriteRule ^([0-9A-Za-z_]*)/([0-9]+)$ index.php?m=content&c=index&a=lists&catdir=$1&page=$2  
    27. RewriteRule ^([0-9A-Za-z_]*)/([0-9]+)/$ index.php?m=content&c=index&a=lists&catdir=$1&page=$2  
    28. #上面栏目分页,是完全的字母加数字的形式,如www.abc.com/news/2 ,后面不带其它字符,或加一个/字符,如果服务器伪静态匹配到了"域名/字母/数字/"的组合,则会自动跳转到index.php?m=content&c=index&a=lists&catdir=$1&page=$2这个页面中.所以.前面的规则不可重复,否则会错乱.  
    29.   
    30. #内容页  
    31. RewriteRule ^([0-9A-Za-z_]*)/([0-9]+).html$ index.php?m=content&c=index&a=show&catdir=$1&id=$2  
    32.   
    33.   
    34. 3,文件,phpcmsphpcmsmodulescontentindex.php中  
    35. 搜索  
    36. $catid = intval($_GET['catid']);  
    37. 一共两处,修改为  
    38.   
    39.  if(isset ($_GET['catid'])){     
    40.                     $catid = intval($_GET['catid']);     
    41.                 }else{     
    42.                     $catdir=$_GET['catdir'];     
    43.                     $s=$this->_getCategoryId($catdir);     
    44.                     $catid=$s[0][catid];                        
    45.                 }   
    46.                   
    47.                   
    48. 然后,在最下面  
    49. } 这个 大括号的前面增加一个函数,如下  
    50.   
    51.   
    52.  protected  function _getCategoryId($catdir){     
    53.            $this->category_db = pc_base::load_model('category_model');     
    54.            $result = $this->category_db->select(array('catdir'=>$catdir));     
    55.            // print_r($result);     
    56.             return $result;     
    57.          }   
    58.   
    59.            
    60.            
    61.            
    62. 4, 打开phpcmsmodulescontentclassesurl.class.php,找到  
    63.   if (!$setting['ishtml']) { //如果不生成静态  
    64.   将下面的:  
    65.   
    66.   
    67. $url = str_replace(array('{$catid}', '{$page}'), array($catid, $page), $urlrule);     
    68.             if (strpos($urls, '\')!==false) {    
    69.                     $url = APP_PATH.str_replace('\', '/', $urls);     
    70.             }    
    71.               
    72.               
    73.               
    74.             整体替换为  
    75.               
    76.             $domain_dir = '';     
    77.             if (strpos($category['url'], '://')!==false && strpos($category['url'], '?')===false) {     
    78.                 if (preg_match('/^((http|https)://)?([^/]+)/i', $category['url'], $matches)) {     
    79.                     $match_url = $matches[0];     
    80.                     $url = $match_url.'/';     
    81.                 }     
    82.                 $db = pc_base::load_model('category_model');     
    83.                 $r = $db->get_one(array('url'=>$url), '`catid`');     
    84.     
    85.                 if($r) $domain_dir = $this->get_categorydir($r['catid']).$this->categorys[$r['catid']]['catdir'].'/';     
    86.             }     
    87.             $categorydir = $this->get_categorydir($catid);     
    88.             $catdir = $category['catdir'];     
    89.             $year = date('Y',$time);     
    90.             $month = date('m',$time);     
    91.             $day = date('d',$time);     
    92.             //echo $catdir;     
    93.             $urls = str_replace(array('{$categorydir}','{$catdir}','{$year}','{$month}','{$day}','{$catid}','{$id}','{$prefix}','{$page}'),array($categorydir,$catdir,$year,$month,$day,$catid,$id,$prefix,$page),$urlrule);     
    94.                        // echo $urls."<br>";     
    95.                         if (strpos($urls, '\')!==false) {    
    96.                     $urls = APP_PATH.str_replace('\', '/', $urls);     
    97.             }     
    98.                         $url = $domain_dir.$urls;  
    99.   
    100.   
    101.  
  • 相关阅读:
    自定义异常
    异常处理
    以圆类 Circle 及立体图形类 Solid 为基础设计圆锥类 Cone
    以圆类 Circle 及立体图形类 Solid 为基础设计圆柱类 Cylinder
    《大道至简:软件工程实践者的思想》读后感
    以点类 Point 及平面图形类 Plane 为基础设计圆类 Circle
    以圆类 Circle 及立体图形类 Solid 为基础设计球类 Sphere
    以点类 Point 及平面图形类 Plane 为基础设计三角形类 Triangle
    设计并实现大数类 BigNum
    支付宝支付(三)—APP支付(alipay.trade.app.pay)
  • 原文地址:https://www.cnblogs.com/keta/p/8426936.html
Copyright © 2011-2022 走看看