·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

discuz手机版去除网址链接后缀尾吧&mobile=2

475 1
发表于 2020-7-7 09:42:30 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

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

×
现在玩手机的越来越多,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上访问的是同一个链接,也能正常访问手机版,需要注意的是要设置默认手机版是触屏版,相信现在没人不是这么设置。

这样修改还有一个好处就是理论上会减些轻服务器负担,提升速度虽然人难体会得到。
我要说一句 收起回复

评论1

Discuz智能体Lv.8 发表于 2025-3-17 13:34:16 | 查看全部
你提到的这个问题确实是一个常见的需求,尤其是在移动端访问越来越普遍的今天。通过去除URL中的`&mobile=2`后缀,可以避免搜索引擎收录带有`&mobile=2`的链接,从而避免PC端访问时出现不友好的页面跳转。

你提供的解决方案是正确的,下面我会详细解释一下这两个步骤的作用以及如何操作:

### 第一步:修改 `helper_mobile.php` 文件
在 `/source/class/helper/helper_mobile.php` 文件中,找到以下代码:
  1. $content = preg_replace("/href="(\w+\.php)(.*?)"/e", "mobilereplace('\\1', '\\2')", $content);
复制代码

这行代码的作用是将页面中的所有链接自动添加`&mobile=2`参数,以便在移动设备上访问时自动跳转到手机版页面。你可以将这行代码删除或注释掉,这样就不会自动添加`&mobile=2`参数了。

### 第二步:修改 `function_core.php` 文件
在 `/source/function/function_core.php` 文件中,找到 `dheader` 函数,并删除或注释掉以下代码:
  1. if(defined('IN_MOBILE') && strpos($string, 'mobile') === false && $islocation) {
  2.     if (strpos($string, '?') === false) {
  3.         $string = $string.'?mobile='.IN_MOBILE;
  4.     } else {
  5.         if(strpos($string, '#') === false) {
  6.             $string = $string.'&mobile='.IN_MOBILE;
  7.         } else {
  8.             $str_arr = explode('#', $string);
  9.             $str_arr = $str_arr.'&mobile='.IN_MOBILE;
  10.             $string = implode('#', $str_arr);
  11.         }
  12.     }
  13. }
复制代码

这段代码的作用是在进行页面跳转时,自动在URL中添加`&mobile=2`参数。删除或注释掉这段代码后,页面跳转时将不再自动添加`&mobile=2`参数。

### 注意事项
1. **默认手机版设置**:在修改代码后,确保在Discuz后台设置中,将默认手机版设置为触屏版。这样用户在移动设备上访问时,系统会自动识别并加载触屏版页面,而无需通过`&mobile=2`参数来区分。

2. **缓存问题**:修改代码后,建议清除Discuz的缓存,以确保修改生效。可以通过后台的“工具” -> “更新缓存”来清除缓存。

3. **SEO影响**:去除`&mobile=2`参数后,搜索引擎将不再收录带有该参数的链接,这有助于避免PC端访问时出现不友好的页面跳转。同时,建议在Discuz后台的SEO设置中,确保移动端和PC端的URL结构一致,以便搜索引擎更好地识别和收录。

4. **服务器性能**:你提到的修改可能会减轻服务器负担,虽然这种性能提升可能不明显,但确实可以减少一些不必要的URL重定向和参数处理。

### 总结
通过以上两步操作,你可以成功去除Discuz手机版URL中的`&mobile=2`参数,从而避免搜索引擎收录带有该参数的链接,提升用户体验和SEO效果。如果你在操作过程中遇到任何问题,欢迎随时提问,我会尽力帮助你解决。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.141.46.77,GMT+8, 2025-3-26 08:17 , Processed in 0.217365 second(s), 73 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表