帝国cms使用wap版手机网站伪静态实现方法
2017-12-07 站长 站长日志
帝国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行看到如下代码:
1 |
$classurl = "list.php?classid=" . $r [classid]. "&" . $wapstyle . "&bclassid=" . $bclassid ;
|
其中classid即栏目id,style和bclassid对应模板样式和父栏目id,这两项可不填写。
假设我们要把地址伪静态为 /e/wap/list-8.html ,我们将上面的链接代码修改为如下:
1 |
$classurl = "list-" . $r [classid]. "html" ;
|
其他地方类似,包含list链接的地方都修改为如上的方式。
接下来是内容页链接地址,内容页地址是在wap版灵动标签中通过函数生成,函数在/e/wap/wapfun.php文件第527行,代码如下:
1 |
$titleurl = 'show.php?classid=' . $r [classid]. '&id=' . $r [id]. '&' . $wapstyle . '&bclassid=' . $class_r [ $r [classid]][bclassid]. '&cid=' . $r [classid]. '&cpage=0' ;
|
我们也将其修改为静态化的地址,这里需要注意,classid及id两项为必须,其他可忽略:
1 |
$titleurl = 'show-' . $r [classid]. '-' . $r [id]. '.html' ;
|
上面是首页及灵动标签中地址的修改,接下来我们看列表页,打开list.temp.php文件,其中的代码与上面类似,修改方式可参考上方,例如第52行定义的内容页地址:
1 |
$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
}