网络上的织梦搜索伪静态教程基本都有,我就不说了。包括使用插件的也有,而且普遍是以下这种方式
伪静态前
www.xxx.com/plus/search.php?q=关键词
伪静态后
www.xxx.com/search/关键词.html
那问题就来了,我如果是要传参或者搜索展示指定的栏目内容咋办。就我经常使用get传参的话,就只能使用动态了。
但我又看着 /plus/search.php?typeid=栏目id&q=关键词&PageNo=分页页数
有点别捏
于是想改成www.xxx.com/search/?typeid=栏目id&q=关键词&PageNo=分页页数
经过一番折腾,还是勉强搞了出来。
写个伪静态规则(写得不好,就是为了方便)
# nginx伪静态 if ($request_uri ~* "^/search/\?typeid=([0-9]+)$"){ set $myarg1 $1; rewrite .* /plus/search.php?typeid=$myarg1 last; } if ($request_uri ~* "^/search/\?typeid=([0-9]+)&q=(.*)$"){ set $myarg1 $1; set $myarg2 $2; rewrite .* /plus/search.php?typeid=$myarg1&q=$myarg2 last; } if ($request_uri ~* "^/search/\?typeid=([0-9]+)&q=(.*)$"){ set $myarg1 $1; set $myarg2 $2; set $myarg3 $3; rewrite .* /plus/search.php?typeid=$myarg1&q=$myarg2&PageNo=$myarg3 last; }
现在 www.xxx.com/search/?typeid=栏目id&q=关键词&PageNo=分页页数 可以正常访问了
但是现在分页还不是我想要的
开始改/include/arc.searchview.class.php 从上一页下一页开始
//获得上一页和下一页的链接 if($this->PageNo != 1) { $prepage.=$GLOBALS['rewrite_open']==1 ? "<li><a href='".$purl."/?typeid=".$this->TypeID."&q=".rawurldecode($oldkeyword)."&PageNo=$prepagenum'>上一页</a></li>\r\n" : "<li><a href='".$purl."/?typeid=".$this->TypeID."&q=".rawurldecode($oldkeyword)."&PageNo=$prepagenum'>上一页</a></li>\r\n"; $indexpage=$GLOBALS['rewrite_open']==1 ? "<li><a href='".$purl."/?typeid=".$this->TypeID."&q=".rawurldecode($oldkeyword)."&PageNo=1'>首页</a></li>\r\n" : "<li><a href='".$purl."/?typeid=".$this->TypeID."&q=".rawurldecode($oldkeyword)."&PageNo=1'>首页</a></li>\r\n"; } else { $indexpage="<li>首页</li>\r\n"; } if($this->PageNo!=$totalpage && $totalpage>1) { $nextpage.=$GLOBALS['rewrite_open']==1 ? "<li><a href='".$purl."/?typeid=".$this->TypeID."&q=".rawurldecode($oldkeyword)."&PageNo=$nextpagenum'>下一页</a></li>\r\n" : "<li><a href='".$purl."/?typeid=".$this->TypeID."&q=".rawurldecode($oldkeyword)."&PageNo=$nextpagenum'>下一页</a></li>\r\n"; $endpage=$GLOBALS['rewrite_open']==1 ? "<li><a href='".$purl."/?typeid=".$this->TypeID."&q=".rawurldecode($oldkeyword)."&PageNo=$totalpage'>末页</a></li>\r\n" : "<li><a href='".$purl."/?typeid=".$this->TypeID."&q=".rawurldecode($oldkeyword)."&PageNo=$totalpage'>末页</a></li>\r\n"; } else { $endpage="<li>末页</li>\r\n"; }
然后是数字链接。
//获得数字链接 $listdd=""; $total_list = $list_len * 2 + 1; if($this->PageNo >= $total_list) { $j = $this->PageNo - $list_len; $total_list = $this->PageNo + $list_len; if($total_list > $totalpage) { $total_list = $totalpage; } } else { $j=1; if($total_list > $totalpage) { $total_list = $totalpage; } } for($j; $j<=$total_list; $j++) { if($j == $this->PageNo) { $listdd.= "<li class='pagelist cur'>$j </li>\r\n"; } else { $listdd.=$GLOBALS['rewrite_open']==1 ? "<li class='pagelist'><a href='".$purl."/?typeid=".$this->TypeID."&q=".rawurldecode($oldkeyword)."&PageNo=$j'>".$j."</a> </li>\r\n" : "<li><a href='".$purl."/?typeid=".$this->ChannelType."&q=".rawurldecode($oldkeyword)."&PageNo=$j'>[".$j."]</a> </li>\r\n"; } } $plist = "<table border='0' cellpadding='0' cellspacing='0'>\r\n"; $plist .= "<tr align='center' style='font-size:10pt'>\r\n"; $plist .= "<form name='pagelist' action='".$this->GetCurUrl()."'>$hidenform"; $plist .= $infos; $plist .= $indexpage; $plist .= $prepage; $plist .= $listdd; $plist .= $nextpage; $plist .= $endpage; if($totalpage>$total_list) { $plist.="<td width='38'><input type='text' name='PageNo' style='width:28px;height:14px' value='".$this->PageNo."' /></td>\r\n"; $plist.="<td width='30'><input type='submit' name='plistgo' value='GO' style='width:30px;height:22px;font-size:9pt' /></td>\r\n"; } $plist .= "</form>\r\n</tr>\r\n</table>\r\n"; return $plist; }
以上代码是伪静态的基础上做的修改,请对比修改,改的都是 $prepage.=$GLOBALS['rewrite_open']==1 ?后面的
//比如数字链接我改的主要是这一段
"<li class='pagelist'><a href='".$purl."/?typeid=".$this->ChannelType."&q=".rawurldecode($oldkeyword)."&PageNo=$j'>".$j."</a> </li>\r\n" : "<li><a href='".$purl."/?typeid=".$this->TypeID."&q=".rawurldecode($oldkeyword)."&PageNo=$j'>[".$j."]</a> </li>\r\n";
到此,改完了。分页css样式
.pagelist {padding:50px 0px;} .pagelist a{color:#fff} .pagelist .cur {padding: 5px 10px;background-color: #038b8e;color: #fff;font-size: 14px;margin: 0 1px;} .pagelist li{display:inline;padding: 5px 10px; background-color: #00cccb; color: #fff; font-size: 14px; margin: 0 1px;border-bottom: none;} .pagelist li:hover{background-color: #038b8e;} .pagelist span{display: inline-block;padding: .5em .8em;background-color: #f9f9f9;color: #999;} .pagelist .text{float: right; margin-right: 10px;color: #9e9e9e;}
织梦二次开发QQ群
本站客服QQ号:862782808(点击左边QQ号交流),群号(383578617) 如果您有任何织梦问题,请把问题发到群里,阁主将为您写解决教程!
转载请注明: 织梦模板 » 织梦搜索指定栏目的搜索伪静态方法