密通学院

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5638|回复: 0

[开发] Discuz触屏版链接删除尾巴(mobile=2)的方法

[复制链接]

282

主题

27

回帖

8万

铜板

超级版主

Rank: 8Rank: 8

积分
89153
QQ
发表于 2019-1-4 21:25:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
现在玩手机的越来越多,DZ的手机模板地位也越来越高,DZ手机版又分触屏版和简易版。现在简易版已经毫无意义,一般说DZ的手机模板就指触屏版。

我们用来区分手机版是触屏版还是简易版等链接是通过&mobile=X来区分。所以现在基本上是&mobile=2;

那么问题就来了,带有&mobile=2的链接在PC上访问是进入misc.php?mod=mobile这个页面,有人会说这有什么关系呢?

这就得说说我们最最关心的了,搜索引擎现在也在大力发展手机方面内容,它有可能收录到带有&mobile=2的链接,那么在PC上访问到这样的链接就惨不忍睹了。

方法如下:

第一步:

找到文件/source/class/helper/helper_mobile.php中:

$content = preg_replace("/href=\"(\w+\.php)(.*?)\"/e", "mobilereplace('\\1', '\\2')", $content);

复制代码
将其删除或者注释掉即可;

第二步:

查找文件/source/function/function_core.php中:

function dheader($string, $replace = true, $http_response_code = 0)

复制代码
将其下面的:

if(defined('IN_MOBILE') && strpos($string, 'mobile') === false && $islocation) {

                if (strpos($string, '?') === false) {

                        $string = $string.'?mobile='.IN_MOBILE;

                } else {

                        if(strpos($string, '#') === false) {

                                $string = $string.'&mobile='.IN_MOBILE;

                        } else {

                                $str_arr = explode('#', $string);

                                $str_arr[0] = $str_arr[0].'&mobile='.IN_MOBILE;

                                $string = implode('#', $str_arr);

                        }

                }

        }

复制代码
删除或者注释掉即可。

这样做之后再手机上访问和PC上访问的是同一个链接,也能正常访问手机版,需要注意的是要设置默认手机版是触屏版,相信现在没人不是这么设置。

这样修改还有一个好处就是理论上会减些轻服务器负担,提升速度虽然人难体会得到。
如果您有业务需求,可以和我联系:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

首页|Archiver|手机版|小黑屋|密通学院:专业网络营销服务商

GMT+8, 2024-12-22 19:28 , Processed in 0.080078 second(s), 25 queries QQ

Powered by XMT Inc. © 2015-2025 ArrayV1.0 豫ICP备17022382号

系统运营:密城通 豫公网安备 41018302000212 号

快速回复 返回顶部 返回列表