帝国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