杰奇cms2.4 PC跳移动识别跳转js跳转规则附带伪静态的设置

相对于二次开发那些,这个确实是算简单的了,只需要根据网上的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;

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注