关注最新技术
技术原创博客

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

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

伪静态规则是
[php]
<rule name="meiguo" stopProcessing="false">
<match url="^(.*)meiguo/$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="{R:1}/index.php?m=content&amp;c=index&amp;a=lists&amp;catid=6" appendQueryString="false" />
</rule>
[/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()里边有跟上边相同的代码修改了就可以了!

未经允许,不得转载本站任何文章:微度网络 » phpcms生成栏目伪静态显示/%7B$catdir%7D/的错误解决办法

分享到:更多 ()