帝国cms使用wap版手机网站伪静态方法
2019-05-02 站长 站长日志
帝国cms的wap功能是一个实现手机版比较边界且自由度高的方法,但这其中也有一些问题,就是地址只有动态地址,这样对收录似乎并不好。
这里我们以这套模板的wap端为例,来讲一下帝国cms的wap端实现伪静态的方法。
一、wap端模板的路径
首先我们说明一下,wap端的模板是存储在文件当中,地址为 /e/wap/template/ ,这其中有index.temp.php list.temp.php show.temp.php,分别对应首页、列表页、内容页。
二、文件修改
我们打开index.temp.php文件,也就是首页模板,其中list.php为列表页链接,show.php为内容页链接。
我们在第31行看到如下代码:
$classurl="list.php?classid=".$r[classid]."&".$wapstyle."&bclassid=".$bclassid;
其中classid即栏目id,style和bclassid对应模板样式和父栏目id,这两项可不填写。
假设我们要把地址伪静态为 /e/wap/list-8.html ,我们将上面的链接代码修改为如下:
$classurl="list-".$r[classid]."html";
其他地方类似,包含list链接的地方都修改为如上的方式。
接下来是内容页链接地址,内容页地址是在wap版灵动标签中通过函数生成,函数在/e/wap/wapfun.php文件第527行,代码如下:
$titleurl='show.php?classid='.$r[classid].'&id='.$r[id].'&'.$wapstyle.'&bclassid='.$class_r[$r[classid]][bclassid].'&cid='.$r[classid].'&cpage=0';
我们也将其修改为静态化的地址,这里需要注意,classid及id两项为必须,其他可忽略:
$titleurl='show-'.$r[classid].'-'.$r[id].'.html';
上面是首页及灵动标签中地址的修改,接下来我们看列表页,打开list.temp.php文件,其中的代码与上面类似,修改方式可参考上方,例如第52行定义的内容页地址:
$titleurl="show.php?classid=".$r[classid]."&id=".$r[id]."&".$wapstyle."&cpage=".$page."&cid=".$classid."&bclassid=".$bclassid;
三、伪静态规则
文件修改完之后,我们还需要相应的伪静态规则来实现地址链接的rewrite,大家可根据自己的服务器环境选择。
apache:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)/e/wap/index.html$ $1/e/wap/index.php
RewriteRule ^(.*)/e/wap/list-([0-9]+).html$ $1/e/wap/list.php?classid=$2
RewriteRule ^(.*)/e/wap/show-([0-9]+)-([0-9]+).html$ $1/e/wap/show.php?classid=$2&id=$3
nginx:
location / {
rewrite ^(.*)/e/wap/index.html$ $1/e/wap/index.php
rewrite ^(.*)/e/wap/list-([0-9]+)\.html$ $1/e/wap/list.php?classid=$2
rewrite ^(.*)/e/wap/show-([0-9]+)-([0-9]+)\.html$ $1/e/wap/show.php?classid=$2&id=$3
}