帝国CMS搜索页伪静态实现方法
时间:2024年04月12日
/来源:网络
/编辑:佚名
本文介绍帝国CMS搜索页url伪静态实现方法,可实现帝国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'].'"> '.$num.' </a> ';
//上一页
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="<b>";
$is_2="</b>";
}
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;
}
然后在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
.htaccess文件参考代码
RewriteEngine on
RewriteRule ^c-(.+?)-(.+?)\.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">
IIS伪静态方法:
IIS下实现帝国CMS搜索页伪静态
前面ytkah讲了apache下帝国CMS搜索页伪静态实现方法,网友说服务器是用IIS,那么IIS下如何实现帝国CMS搜索页伪静态呢?
首先得先有URL重写插件,下载地址:http://www.iis.net/download/URLRewrite,根据需要,点击右侧的下载链接(我的系统是64位的,就下载x64的),
下载安装, 为了保证IIS的顺利运行,最后重启下服务器(非重启IIS服务器)。再进入IIS管理会看到这样一个图标,就是URL 重写
然后修改站点根目录的Web.Config这个文件了,提供一下范例给大家:
<?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>
至此伪静态配置完成
文章来自:https://www.cnblogs.com/ytkah/p/6893217.html
具体实现方法如下:
一、打开\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'].'"> '.$num.' </a> ';
//上一页
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="<b>";
$is_2="</b>";
}
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;
}
然后在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
.htaccess文件参考代码
RewriteEngine on
RewriteRule ^c-(.+?)-(.+?)\.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">
IIS伪静态方法:
IIS下实现帝国CMS搜索页伪静态
前面ytkah讲了apache下帝国CMS搜索页伪静态实现方法,网友说服务器是用IIS,那么IIS下如何实现帝国CMS搜索页伪静态呢?
首先得先有URL重写插件,下载地址:http://www.iis.net/download/URLRewrite,根据需要,点击右侧的下载链接(我的系统是64位的,就下载x64的),
下载安装, 为了保证IIS的顺利运行,最后重启下服务器(非重启IIS服务器)。再进入IIS管理会看到这样一个图标,就是URL 重写
然后修改站点根目录的Web.Config这个文件了,提供一下范例给大家:
<?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>
至此伪静态配置完成
文章来自:https://www.cnblogs.com/ytkah/p/6893217.html
新闻资讯 更多
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8帝国cms后台登录出现”您还未登录”怎么解决?
- 9织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法