东方星雨

简单网络

一个爱好网络的80后男站长。

关注我东方星雨个人微信号:476847113

您现在的位置是:首页 > 站长日志

帝国CMS结合项伪静态方法分享

2018-06-19 站长 站长日志

 修改前请先做好备份,由于修改而造成的损失本人概不负责。

1、下载并安装好官方结合项插件:http://bbs.phome.net/ShowThread/?threadid=201928&forumid=31
2、修改官方插件使URL格式固定。
修改方法:
打开\e\class\userfun.php
找到
global $public_r;
替换为
global $public_r,$navclassid;
找到
$fieldandvar='myarea,sex,age';

        //字段显示选项设置,多项用双“#”号隔开,格式:选项说明|==|内容1,值1##内容2,值2
        $fieldandval=array();
        $fieldandval['myarea']='<b>地区:</b>|==|不限,##东城,东城区##朝阳,朝阳区##崇文,崇文区##宣武,宣武区##海淀,海淀区##丰台,丰台区';
        $fieldandval['sex']='<b>性别:</b>|==|不限,##男,男##女,女##人妖,人妖';
        $fieldandval['age']='<b>年龄:</b>|==|不限,##1-10,1__10##11-20,11__20##21-30,21__30##31-40,31__40##41-50,41__50##50岁以上,51__200';
替换为(根据自已要求修改)
$fieldandvar='myarea,sex,age';

        //字段显示选项设置,多项用双“#”号隔开,格式:选项说明|==|内容1,值1##内容2,值2
        $fieldandval=array();
        $fieldandval['myarea']='<b>地区:</b>|==|不限,0##东城,1##朝阳,2##崇文,3##宣武,4##海淀,5##丰台,6';//我这里将值改为数字你可以改任何内容
        $fieldandval['sex']='<b>性别:</b>|==|不限,0##男,1##女,2##人妖,3';
        $fieldandval['age']='<b>年龄:</b>|==|不限,0##1-10,1##11-20,2##21-30,3##31-40,4##41-50,5##50岁以上,6';
找到
    if($_GET['classid'])
    {
        $classid=RepPostVar($_GET['classid']);
        $urlcs.='&classid='.$classid;
    }

    else
   {
       if(!$_GET['mid']&&!$_GET['ttid']&&!$_GET['ztid'])
        {
            $classid=intval($GLOBALS['navclassid']);
            $urlcs.='&classid='.$classid;
        }
   }

替换为
if($_GET['classid'])
        {
                $classid=RepPostVar($_GET['classid']);
                $urlcs.=$classid;
        }
        else
        {
        $urlcs.=$navclassid;
        }
找到
$valallstr.=$valexpr[0].'<a href="'.$public_r['newsurl'].'e/action/ListInfo.php?'.$urlcs.'&ph=1<!--url.add-->&'.$field.'='.urlencode($vtr[1]).'" class="'.$css.'">'.$vtr[0].'</a>'.$valexpr[1];
替换为
$myarea_value=news_value('myarea',$i,0,$vtr[1]);
$sex_value=news_value('sex',$i,1,$vtr[1]);
$age_value=news_value('age',$i,2,$vtr[1]);
// 以上每个加一个字段都需定义
$valallstr.=$valexpr[0].'<a href="http://localhost/list-'.$urlcs.$myarea_value.$sex_value.$age_value.'.html'.'" class="'.$css.'">'.$vtr[0].'</a>'.$valexpr[1];
// http://localhost/EmpireCMS7/list这句根据自己情况修改

找到
?>
在上面加
function news_value($field,$ii,$iii,$vrtss)//新增函数
  {
                if($_GET[$field])
                {
                        $getval=htmlspecialchars($_GET[$field],ENT_QUOTES);
                        $news_values='-'.urlencode($getval);
                }
                else
                {
                $news_values='-0';
                }
                if($ii==$iii)
                {
                $news_values='-'.$vrtss;
                }
  return $news_values;
  }

这样修改后出来的链接地址就固定了。

 

3、打开\e\action\ListInfo.php
找到
$search.='&ph=1&andor='.$andor;
替换为
$search.='&ph=1&andor='.$andor;
$search2.='-'.$classid;
找到
for($i=1;$i<$count;$i++)
        {
                $andval=$_GET[$andr[$i]];
                if(!empty($andval))
                {
                        $andval=RepPostVar2($andval);
                        $doandor=empty($listandf)?'':' '.$andor.' ';
                        if(strstr($andval,'__'))
                        {
                                $andbtr=explode('__',$andval);
                                $andbtr[0]=(float)$andbtr[0];
                                $andbtr[1]=(float)$andbtr[1];
                                if($andbtr[0]&&$andbtr[1])
                                {
                                        $listandf.=$doandor.$andr[$i]." BETWEEN '".$andbtr[0]."' and '".$andbtr[1]."'";
                                }
                        }
                        elseif(empty($emod_r[$mid]['setandf']))
                        {
                                $listandf.=$doandor.$andr[$i]."='".$andval."'";
                        }
                        else
                        {
                                $listandf.=$doandor.$andr[$i]." like '%".$andval."%'";
                        }
                        $search.="&".$andr[$i]."=$andval";
                }
        }
替换为
        for($i=1;$i<$count;$i++)
        {
                $andval=$_GET[$andr[$i]];
                if(strlen($andval)>0)//变量有0所以改为strlen;
                {
                        $fieldandval=array(//对应userfun.php里数组 注意顺序须
                                'myarea' =>array(0=>'',1=>"东城区",2=>"朝阳区",3=>"崇文区",4=>"宣武区",5=>"海淀区",6=>"丰台区"),
                                'sex'=>array(0=>'',1=>"男",2=>"女",3=>"人妖"),
                                'age'=>array(0=>'',1=>"1__10",2=>"11__20",3=>"21__30",4=>"31__40",5=>"41__50",6=>"51__200"),
                                );
                        $andval2=RepPostVar2($andval);
                        $andval=$fieldandval[$andr[$i]][$andval2];
                        //修改过的内容尾
                        $doandor=empty($listandf)?'':' '.$andor.' ';
                        if(strstr($andval,'__'))
                        {
                                $andbtr=explode('__',$andval);
                                $andbtr[0]=(float)$andbtr[0];
                                $andbtr[1]=(float)$andbtr[1];
                                if($andbtr[0]&&$andbtr[1])
                                {
                                        $listandf.=$doandor.$andr[$i]." BETWEEN '".$andbtr[0]."' and '".$andbtr[1]."'";
                                }
                        }
                        elseif(empty($emod_r[$mid]['setandf']))
                        {
                                $listandf.=$doandor.$andr[$i]."='".$andval."'";


                        }
                        else
                        {
                                $listandf.=$doandor.$andr[$i]." like '%".$andval."%'";
                                if(!empty($andval))
                                {
                                $modekey.=$andval." - ";
                                }
                        }
        
                        $search2.="-$andval2";
                }
        }
找到
$listpage=page1($num,$line,$page_line,$start,$page,$search);
替换为
$listpage=page1($num,$line,$page_line,$start,$page,$search2);

这样修改后链接就能正常访问了。

 

4、打开\e\class\connect.php
找到 function page1 函数
修改为(根据自己要求修改)
function page1($num,$line,$page_line,$start,$page,$search){
        global $fun_r;
        if($num<=$line)
        {
                return '';
        }
        $search=RepPostStr($search,1);
        //$url=eReturnSelfPage(0);
        $url='http://localhost/videolist/';//需重定义
        $snum=2;//最小页数
        $totalpage=ceil($num/$line);//取得总页数
        $firststr='<span>共'.$num.'条数据 页次:'.($page+1).'/'.$totalpage.'页</span>';
        //上一页
        if($page<>0)
        {
                $toppage='<a href="'.$url.'0'.$search.'.html">'.$fun_r['startpage'].'</a>';
                $pagepr=$page-1;
                $prepage='<a href="'.$url.''.$pagepr.$search.'.html">'.$fun_r['pripage'].'</a>';
        }
        //下一页
        if($page!=$totalpage-1)
        {
                $pagenex=$page+1;
                $nextpage='<a href="'.$url.$pagenex.$search.'.html">'.$fun_r['nextpage'].'</a>';
                $lastpage='<a href="'.$url.($totalpage-1).$search.'.html">'.$fun_r['lastpage'].'</a>';
        }
        $starti=$page-$snum<0?0:$page-$snum;
        $no=0;
        for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
        {
                $no++;
                if($page==$i)
                {
                        $is_1="<em>";
                        $is_2="</em>";
                }
                else
                {
                        $is_1='<a href="'.$url.$i.$search.'.html">';
                        $is_2="</a>";
                }
                $pagenum=$i+1;
                $returnstr.=$is_1.$pagenum.$is_2;
        }
        $returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
        return $returnstr;
}


好了,修改完成。
apache 规则

RewriteEngine on
RewriteBase /EmpireCMS7
RewriteRule ^list/([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+).html$ e/action/ListInfo.php?page=$1&classid=$2&ph=1&myarea=$3&sex=$4&age=$5

nginx规则

location / {
rewrite ^(.*)list/([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+).html$ $1e/action/ListInfo.php?page=$1&classid=$2&ph=1&myarea=$3&sex=$4&age=$5 last;
                   }

修改后搜索分页会打不开我就不弄弄了意义不大,加一条规则就不会404

rewrite ^(.*)list/([0-9]+)&searchid=([0-9]+).html$ $1e/search/result/index.php?page=$2&searchid=$3 last;

以上参考http://bbs.phome.net/showthread-13-290980-0.html 集合修改部分配置成功

 

附本站伪静态规则

 

#结合项
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^list-(.+?)-(.+?)-(.+?)-(.+?).html$  /e/action/ListInfo.php?page=$1&classid=$2&ph=1&color=$3&design=$4

文章评论