修改前請先做好備份,由于修改而造成的損失本人概不負責。
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
新聞熱點
疑難解答