相对于二次开发那些,这个确实是算简单的了,只需要根据网上的js自己补充而已,但是相对于每个模板都配置一条跳转规则,我还是有个简单的办法,不过还是得配合已经设置好的伪静态。在这篇教程里,小编就简单说明一下电脑和手机端两边的配置
比较重要的页面主要是首页,书库,分类,小说信息,充值,目录,小说阅读,但是一般来说目录和小说阅读的头部是放置在单个文件中,不和其它页面共用。
假如:
电脑端网址为:pc.xx.com
手机端网址为:wap.xx.com
教程开始
首先是PC端的修改
1.在PC端的/themes/目录中找到当前设置的模板,进入后找到theme.html,在它的head标签对中加入如下代码:
<script type="text/javascript"> function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os"; var bIsMidp = sUserAgent.match(/midp/i) == "midp"; var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4"; var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb"; var bIsAndroid = sUserAgent.match(/android/i) == "android"; var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce"; var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile"; if(bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM){ {?if $jieqi_thisfile|basename == 'articlefilter.php'?} window.location.href = "http://wap.xx.com/modules/article/articlefilter.php"; {?else if $jieqi_thisfile|basename == 'articlelist.php'?} window.location.href = "http://wap.xx.com/sort/{?$sortid?}/1.html"; {?else if $jieqi_thisfile|basename == 'buyegold.php'?} window.location.href = "http://wap.xx.com/modules/pay/buyegold.php"; {?else if $jieqi_thisfile|basename == 'articleinfo.php'?} window.location.href = "http://wap.xx.com/book/{?$articleid?}"; {?else?} window.location.href = "http://wap.xx.com/"; {?/if?} } } browserRedirect(); </script>
2.目录页和章节页头部可能在themer.html,也可能是/modules/article/templates/里面的style.html和index.html,同样是在head标签对加入如下代码。
<script type="text/javascript"> function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os"; var bIsMidp = sUserAgent.match(/midp/i) == "midp"; var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4"; var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb"; var bIsAndroid = sUserAgent.match(/android/i) == "android"; var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce"; var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile"; if(bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM){ {?if $jieqi_thisfile|basename == 'reader.php'?} window.location.href = "http://wap.xx.com/index/{?$articleid?}/1/asc"; {?else if $chapterid != ''?} window.location.href = "http://wap.xx.com/book/{?$articleid?}/{?$chapterid?}.html"; {?else?} window.location.href = "http://wap.xx.com/"; {?/if?} } } browserRedirect(); </script>
然后是WAP端的修改:
1.在WAP端的/themes/目录中找到当前设置的模板,进入后找到theme.html,在它的head标签对中加入如下代码:
<script> if( navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/BlackBerry/i) || navigator.userAgent.match(/Windows Phone/i) ){ }else{ {?if $jieqi_thisfile|basename == 'articlefilter.php'?} window.location.href = "http://pc.xx.com/modules/article/articlefilter.php"; {?else if $jieqi_thisfile|basename == 'articlelist.php'?} window.location.href = "http://pc.xx.com/sort/{?$sortid?}/1.html"; {?else if $jieqi_thisfile|basename == 'buyegold.php'?} window.location.href = "http://pc.xx.com/modules/pay/buyegold.php"; {?else if $jieqi_thisfile|basename == 'articleinfo.php'?} window.location.href = "http://pc.xx.com/book/{?$articleid?}"; {?else?} window.location.href = "http://pc.xx.com/"; {?/if?} } </script>
2.目录页和章节页和pc差不多相同,一样的逻辑,就是目录页面的细节不一样。
<script> if( navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/BlackBerry/i) || navigator.userAgent.match(/Windows Phone/i) ){ }else{ {?if $jieqi_thisfile|basename == 'reader.php'?} window.location.href = "http://pc.xx.com/index/{?$articleid?}"; {?else if $chapterid != ''?} window.location.href = "http://pc.xx.com/book/{?$articleid?}/{?$chapterid?}.html"; {?else?} window.location.href = "http://pc.xx.com/"; {?/if?} } </script>
杰奇后台伪静态的设置,没写的自己按照格式写伪静态规则,或者不填。
小说信息页面伪静态规则:/book/<{$id}>
小说分类页面伪静态规则:/sort/<{$sortid}>/<{$page}>.html
排行榜页面伪静态规则:/top/<{$order}>/<{$page}>.html
书库伪静态规则:/book_<{$order}>_<{$rgroup}>_<{$sortid}>_<{$typeid}>_<{$words}>_<{$update}>_<{$initial}>_<{$isfull}>_<{$isvip}>_<{$page}>.html
小说目录页伪静态规则:/index/<{$aid}>
小说章节页伪静态规则:/book/<{$aid}>/<{$cid}>.html
搜索结果页伪静态规则:/search/<{$searchtype}>/<{$searchkey}>/<{$page}>.html
搜索结果页伪静态规则:/reviews/<{$aid}>/<{$page}>.html
标签列表页伪静态规则:/taglist/<{$sort}>/<{$page}>.html
apache伪静态,在根目录创建.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^templates/(.*).html$ /404.php
RewriteRule ^themes/(.*)/(.*).html$ /404.php
RewriteRule ^modules/(.*)/templates/$ /404.php
RewriteRule ^modules/(.*)/templates/(.*).html$ /404.php
RewriteRule ^book/([0-9]+)$ /modules/article/articleinfo.php?id=$1
RewriteRule ^index/([0-9]+)$ /modules/article/reader.php?aid=$1
RewriteRule ^book/([0-9]+)/([0-9]+).html$ /modules/article/reader.php?aid=$1&cid=$2
RewriteRule ^vip/([a-zA-Z0-9]+)/([0-9]+).html$ /modules/obook/reader.php?aid=$1&cid=$2
RewriteRule ^sort/([0-9]+)/([0-9]+).html$ /modules/article/articlelist.php?sortid=$1&page=$1
RewriteRule ^buyvip/([0-9]+).html$ /modules/obook/buychapter.php?cid=$1
RewriteRule ^books$ /modules/article/articlefilter.php
RewriteRule ^top/([a-z]+)/([0-9]+).html$ /modules/article/toplist.php?order=$1&page=$2
RewriteRule ^search/([0-9]+)/(.*)/([0-9]+).html$ /modules/article/search.php?searchtype=$1&searchkey=$2&page=$3
RewriteRule ^taglist/([0-9]+)/(.*).html$ /modules/article/taglist.php?sort=$1&page=$2
RewriteRule ^book_([a-z]+)_([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+)_([a-zA-Z0-9]+)_([0-9]+)_([0-9]+)_([0-9]+).html$ /modules/article/articlefilter.php?order=$1&rgroup=$2&sortid=$3&typeid=$4&words=$5&update=$6&initial=$7&isfull=$8&isvip=$9&page=$10
nginx伪静态,需要自己填入配置文件:
if (!-d $request_filename){
set $rule_0 1$rule_0;
}
if (!-f $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = “21”){
rewrite ^/templates/(.*).html$ /404.php;
}
rewrite ^/themes/(.*)/(.*).html$ /404.php;
rewrite ^/modules/(.*)/templates/$ /404.php;
rewrite ^/modules/(.*)/templates/(.*).html$ /404.php;
rewrite ^/book/([0-9]+)$ /modules/article/articleinfo.php?id=$1;
rewrite ^/index/([0-9]+)$ /modules/article/reader.php?aid=$1;
rewrite ^/book/([0-9]+)/([0-9]+).html$ /modules/article/reader.php?aid=$1&cid=$2;
rewrite ^/vip/([a-zA-Z0-9]+)/([0-9]+).html$ /modules/obook/reader.php?aid=$1&cid=$2;
rewrite ^/sort/([0-9]+)/([0-9]+).html$ /modules/article/articlelist.php?sortid=$1&page=$1;
rewrite ^/buyvip/([0-9]+).html$ /modules/obook/buychapter.php?cid=$1;
rewrite ^/books$ /modules/article/articlefilter.php;
rewrite ^/top/([a-z]+)/([0-9]+).html$ /modules/article/toplist.php?order=$1&page=$2;
rewrite ^/search/([0-9]+)/(.*)/([0-9]+).html$ /modules/article/search.php?searchtype=$1&searchkey=$2&page=$3;
rewrite ^/taglist/([0-9]+)/(.*).html$ /;
rewrite ^/book_([a-z]+)_([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+)_([a-zA-Z0-9]+)_([0-9]+)_([0-9]+)_([0-9]+).html$ /modules/article/articlefilter.php?order=$1&rgroup=$2&sortid=$3&typeid=$4&words=$5&update=$6&initial=$7&isfull=$8&isvip=$9&page=$10;
2019/06/13补充:
杰奇2.4的wap端目录采用的是分页模式,并且还拥有正序倒序的功能,所以如果按照电脑的写法,将会导致无法翻页,正确的配置文件应该是将目录页的伪静态改为如下。
‘fakearticle’ => ‘/index/<{$aid}>/<{$page}>/<{$order}>’,
nginx的目录伪静态改为:
rewrite ^/index/([0-9]+)/([0-9]+)/([a-z]+)$ /modules/article/reader.php?aid=$1&page=$2&order=$3;
apache的目录伪静态改为:
RewriteRule ^index/([0-9]+)/([0-9]+)/([a-z]+)$ /modules/article/reader.php?aid=$1&page=$2&order=$3;