帝国CMS搜索页伪静态实现方法

元之本网站建设2019-08-20 09:58:533500

本文首先介绍帝国CMS搜索页url伪静态Apache实现方法,可实现帝国CMS站内搜索结果页的伪静态显示,在使用帝国CMS二次开发中非常具有实用价值,需要的朋友可以参考下(文末附iis解决方案)

具体实现方法如下:

一、打开\e\search\index.php 411行左右,找到:

Header("Location:result/?searchid=$searchid".$dogetvar);

修改为:

Header("Location:$public_r[newsurl]search-0-$searchid.html".$dogetvar);

二、打开\e\search\result\index.php 20行左右,找到:

//搜索结果$searchid=(int)$_GET['searchid'];

在前面添加分页函数:

//增加分页函数function page10($num,$line,$page_line,$start,$page,$search){global $fun_r;if($num<=$line){return '';}$search=RepPostStr($search,1);$url=$public_r['newsurl'].'search';$snum=2;//最小页数$totalpage=ceil($num/$line);//取得总页数$firststr='<a title="'.$fun_r['trecord'].'">&nbsp;'.$num.'&nbsp;</a>&nbsp;&nbsp;';//上一页if($page<>0){$toppage='<a href="'.$url.'-0-'.$search.'.html">'.$fun_r['startpage'].'</a>&nbsp;';$pagepr=$page-1;$prepage='<a href="'.$url.'-'.$pagepr.'-'.$search.'.html">'.$fun_r['pripage'].'</a>';}//下一页if($page!=$totalpage-1){$pagenex=$page+1;$nextpage='&nbsp;<a href="'.$url.'-'.$pagenex.'-'.$search.'.html">'.$fun_r['nextpage'].'</a>';$lastpage='&nbsp;<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="<b>";$is_2="</b>";}else{$is_1='<a href="'.$url.'-'.$i.'-'.$search.'.html">';$is_2="</a>";}$pagenum=$i+1;$returnstr.="&nbsp;".$is_1.$pagenum.$is_2;}$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;return $returnstr;}

然后在48行左右找到:

$listpage=page1($num,$line,$page_line,$start,$page,$search);

修改为:

$listpage=page10($num,$line,$page_line,$start,$page,$search);

找到:

$search="&searchid=".$searchid;

修改为:

$search="$searchid";

三、添加伪静态规则(例子为Apache,自己修改为对应的).

RewriteRule ^search-(.+?)-(.+?)\.html$ /e/search/result/index\.php\?page=$1&searchid=$2

四、修改搜索模板中的提交地址为绝对地址:

<form action='http://www.XXXX.com/e/search/index.php' method="post" name="search_news" id="search_news">

 帝国CMS搜索页伪静态实现方法 第1张

IIS下实现帝国CMS搜索页伪静态

前面讲了apache下帝国CMS搜索页伪静态实现方法,网友说服务器是用IIS,那么IIS下如何实现帝国CMS搜索页伪静态呢?首先得先有URL重写插件,下载地址:http://www.iis.net/download/URLRewrite,根据需要,点击右侧的下载链接(我的系统是64位的,就下载x64的),下载安装, 为了保证IIS的顺利运行,最后重启下服务器(非重启IIS服务器)。再进入IIS管理会看到这样一个图标,就是URL 重写

帝国CMS搜索页伪静态实现方法 第2张

 然后修改站点根目录的Web.Config这个文件了,提供一下范例给大家:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="已导入的规则 2">
                    <match url="^c-0-(.*).html$" ignoreCase="false" />
                    <action type="Rewrite" url="/e/search/result/\?searchid={R:1}"/>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

至此伪静态配置完成

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接:http://www.yuyubebe.cn/2019/08/283/

评论

«   2020年6月   »
1234567
891011121314
15161718192021
22232425262728
2930
宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取
扫描即可关注我们