欢迎来到六久阁织梦模板网!
织梦搜索指定栏目的搜索伪静态方法

织梦搜索指定栏目的搜索伪静态方法

浏览次数: 0

作者: 六久阁织梦模板网

信息来源: 六久阁

更新日期: 2020-05-03

文章简介

网络上的织梦搜索伪静态教程基本都有,我就不说了。包括使用插件的也有,而且普遍是以下这种方式 伪静态前 www.xxx.com/plus/search.php?q=关键词 伪静态后 www.xxx.com/search/关键词.html 那问题就来了,我如果是要传参或者搜索展示指定的栏目内容咋办。就

  • 正文开始
  • 热门文章

网络上的织梦搜索伪静态教程基本都有,我就不说了。包括使用插件的也有,而且普遍是以下这种方式

伪静态前

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&nbsp;</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>&nbsp;</li>\r\n" : "<li><a href='".$purl."/?typeid=".$this->ChannelType."&q=".rawurldecode($oldkeyword)."&PageNo=$j'>[".$j."]</a>&nbsp;</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>&nbsp;</li>\r\n" : "<li><a href='".$purl."/?typeid=".$this->TypeID."&q=".rawurldecode($oldkeyword)."&PageNo=$j'>[".$j."]</a>&nbsp;</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) DedeCMS织梦教程QQ群 如果您有任何织梦问题,请把问题发到群里,阁主将为您写解决教程!

转载请注明: 织梦模板 » 织梦搜索指定栏目的搜索伪静态方法

  • 织梦dedecms手机站m目录下不生成index.html实现动态更新
    阅读
    用 织梦建站 会手机站首页不更新的苦恼,每次 PC 更新,要去删除 m 目录下的 index.html ,手机站首页才会更新,这样很麻烦,通过以下修改,让手机站首页是动态的,不生成 index.html , PC 端更新后,手机端首页自动更新。 把 \m\index.php 里面的 $row[sho...
  • 织梦Fatal error: Call to undefined function make_hash() in /dede/sys_info.php on line 201的解决方法
    阅读
    织梦系统安装好后,进入后台,出现Fatal error: Call to undefined function make_hash() in /dede/sys_info.php on line 201 一般出现这个问题是因为升级网站引起的。我们可以直接把错误提示这段代码删除或者屏蔽就行了。 打开/dede/sys_info.php,找到201...
  • 织梦Dedecms 5.7 火车头采集免登陆发布接口适配PHP7.X插件
    阅读
    最近有粉丝说,之前用的火车头发布文章时,用免登陆接口在PHP7.0环境中显示空白,于是今天抽空更新了一下插件(话说,DedeCms早期版本无法在PHP7.X运行,用最新版的!),那么接下来的代码就是插件发布模块无须变更,只需要变更接口插件就可以了 ?php/*/////...
  • 织梦dedecms系统多城市分站功能开发思路
    阅读
    当前很多人用织梦dedecms系统建站,多城市分站对地方性长尾关键词和全国市场的推广有着很大的帮助,今天和大家分享下如何实现织梦dedecms系统多城市分站功能。 方法/步骤 织梦dede城市分站有三种方法: 第一种是建立N多个模板,有多少个城市建立多少个模板,...
  • 织梦dedecms提交自定义表单后发送到指定邮箱
    阅读
    网上很多教程都是用 dedecms 自带的邮件库发送邮件,而且是写死要发送的字段内容,今天我们用 phpmailer 来给站长发送自定义表单提交的数据到指定邮箱上 (QQ 邮箱, 163 邮箱都可以 ) ,不写死任何东西,有什么字段就提交发送什么字段。 操作之前,我们要先...
  • 织梦5.7火车头免登陆文章发布模块采集后自动更新织梦整站
    阅读
    织梦5.7火车头免登陆文章发布模块采集后自动更新织梦整站详细步骤: 1、下载文档后,把DedeCMS免登陆接口文章发布模块DedeCMS 5.7 免登陆接口文章发布模块.wpm复制到火车头采集规则文件夹Module下; 2、选择您网站对应的接口文件.如您网站是gbk编码,请选择 g...
  • dedecms织梦ckplayer视频播放器插件详细安装教程
    阅读
    织梦 ckplayer 视频播放器插件安装步骤: 第一步、下载安装插件。下载地址:点击此处 将下载下来的压缩包中的相应编码的模块文件解压出来再上传到织梦程序的 data/module/ 文件夹内或者直接在后台模块管理菜单里面选择上传新模块安装即可。如下图: 1.1 )上...
  • 织梦采集侠破解版自动采集触发教程24小时触发自动审核自动更新
    阅读
    最新采集侠V2.9.2破解版,可以在网站进行全自动数据采集,采集侠破解版可以帮助用户快速提升自己网站的Seo排名。 织梦采集侠是一款基于dedecms的一套根据关键词自动采集,无须编写复杂的采集规则,自动伪原创,自动发布内容的绿色插件。简单配置好后能实现24...
  • 织梦dedecms网站添加打赏功能
    阅读
    有时我们看到别人家的织梦dedecms网站有打赏功能,是不是羡慕嫉妒恨呢?今天我来给大家讲讲织梦网站怎么添加支付宝、微信打赏功能。 二、首先登陆畅言后台(没有畅言账号的首先注册账号) 三、进入后台,找到实验室--打赏 四、设置配置信息,保存。 五、复制...
  • 织梦火车头采集免登陆接口采集文章后自动更新栏目、首页、文章页,实现自动化采集
    阅读
    最近用织梦dedecms程序采集文章时候,发现每次采集都要去后台更新一下文章、栏目、上下篇以及首页,操作起来真心麻烦,后面在网上收集了一些代码以及经过自己调试,发现居然可以自动更新文章页以及栏目、首页。真心爽,这样子就能稳稳的挂机采集了哈。这是免...
收藏此文 打赏本站

如本文对您有帮助,就请六久阁织梦模板网抽根烟吧!

  • 支付宝打赏
    支付宝扫描打赏
    微信打赏
    微信扫描打赏
织梦后台修改广告代码后前台不显示更新的解决方法
« 上一篇 2020年05月03日
织梦dede:channelartlist标签按typeid排序输出方法
下一篇 » 2020年04月30日

精彩评论

有问题在这里提问,阁主会为你解决!
  • 全部评论(0
    还没有评论,快来抢沙发吧!