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

<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>
然后看了生成的规则,我修改了一段程序就可以了,我们找到/phpcms/modules/admin/classes/cache_api.class.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;
修改成下边
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;
然后找到/phpcms/modules/admin/category.php里边的public function cache()里边有跟上边相同的代码修改了就可以了!

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部