北京小强科技竞价托管优惠活动中!!!
咨询,就免费赠送域名与服务器,咨询热线:15901294411 当前位置: 首页>技术分析 > 建站心得 > 正文
热门内容
联系我们
QQ:2828634
电话咨询:15901294411
E-mail:2828634@qq.com
地址:北京市昌平区科技园A座1403

phpcms生成栏目伪静态显示/%7B$catdir%7D/的错误解决办法

作者/整理:小强SEM 来源:小强科技 2018-10-28 20:21:32

  我前些日子给别人做伪静态,为了优化好,所以栏目做成/{$catidr}/就是我们说的一级栏目名称,应该是域名/meiguo/结果出来之后是域名/%7B$catdir%7D/的404错误,我就开始检查程序,我用的是最新版的phpcms v9的更新版 不知道以前有没有这个问题!

  伪静态规则是

  [php]

  

  

  

  

  

  [/php]

  然后看了生成的规则,我修改了一段程序就可以了,我们找到/phpcms/modules/admin/classes/cache_api.class.php找到下边代码

  [php]

  public function category() //这个方法里边的下边这个方法

  if(!preg_match('/^(http|https):\/\//', $r['url'])) {

  $r['url'] = siteurl($r['siteid']).$r['url'];

  } elseif ($r['ishtml']) {

  $r['isdomain'] = '1';

  }

  $categorys[$r['catid']] = $r;

  [/php]

  修改成下边

  [php]

  if(!preg_match('/^(http|https):\/\//', $r['url'])) {

  //$r['url'] = siteurl($r['siteid']).$r['url'];

  //addby widuu 2013-05-23

  //$r['url'] = siteurl($r['siteid']).$r['url'];

  $r['url'] = preg_replace('/(\{\$catdir\})/i',$r['catdir'],siteurl($r['siteid']).$r['url']);

  //end

  } elseif ($r['ishtml']) {

  $r['isdomain'] = '1';

  }

  //addby widuu 2013-05-23

  $r['url'] = preg_replace('/(\{\$catdir\})/i',$r['catdir'],$r['url']);

  //end

  $categorys[$r['catid']] = $r;

  [/php]

  然后找到/phpcms/modules/admin/category.php里边的public function cache()里边有跟上边相同的代码修改了就可以了!