织梦5.7如何禁用手机自动跳转功能?

99ANYc3cd6
预计阅读时长 19 分钟
位置: 首页 织梦建站 正文
  1. 移除织梦自带的手机跳转代码:这是最常见的情况,织梦在模板中默认加入了检测手机并跳转到手机站的JS代码。
  2. 移除通过.htaccess文件实现的301跳转:有些站长会通过服务器规则(如.htaccess)来强制跳转,这种情况需要修改服务器配置文件。

下面我将分别介绍如何处理这两种情况,请根据您的实际情况选择。

织梦5.7去掉手机跳转
(图片来源网络,侵删)

移除织梦模板中的手机跳转代码 (最常用)

织梦DedeCMS 5.7通常会在首页模板(index.htm)和head公共头部模板(head.htm)中嵌入一段JavaScript代码来实现手机跳转,我们需要找到并删除它。

步骤 1:备份文件

在进行任何修改之前,请务必备份您的网站文件,特别是 /templets/default/ 目录下的文件,以防操作失误导致网站无法访问。

步骤 2:检查并修改首页模板 (index.htm)

  1. 使用FTP或文件管理器登录您的网站服务器。

  2. 进入 /templets/您的模板名称/ 目录(如果您使用的是默认模板,/templets/default/)。

    织梦5.7去掉手机跳转
    (图片来源网络,侵删)
  3. 找到并打开 index.htm 文件。

  4. 在文件中搜索类似以下的代码段:

    <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 (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
            // 这里的 /m/ 是手机站的目录,请根据您的实际情况修改
            window.location.href = "http://" + window.location.host + "/m/"; 
        }
    }
    browserRedirect();
    </script>

    或者更简洁的版本:

    <script type="text/javascript">
    if(window.location.toString().indexOf('pref=padindex') != -1){}else{
        if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){
        if(window.location.href.indexOf("?mobile")<0){
            try{
                if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){
                    window.location.href="http://您的域名/m/"; // 手机站地址
                }else if(/iPad/i.test(navigator.userAgent)){
                    //window.location.href="http://您的域名/"; // iPad不跳转,可以保留或也跳转
                }else{
                    window.location.href="http://您的域名/m/"; // 其他手机设备跳转
                }
            }catch(e){}
        }
    }
    }
    </script>
  5. 将整个 <script>...</script> 代码块删除,这段代码就是负责检测设备并跳转的核心。

    织梦5.7去掉手机跳转
    (图片来源网络,侵删)

步骤 3:检查并修改公共头部模板 (head.htm)

这段代码也可能被放在公共头部模板中,这样可以作用于所有页面。

  1. 在同一个 /templets/default/ 目录下,找到并打开 head.htm 文件。
  2. 同样地,搜索上面提到的JavaScript代码。
  3. 如果找到,也将其完全删除

步骤 4:清除缓存

删除代码后,登录您的织梦后台。

  1. 点击左侧菜单的 “系统” -> “清除缓存”
  2. 勾选所有选项,然后点击“开始执行”。
  3. 清除缓存后,重新访问您的网站,手机应该就不会自动跳转了。

移除 .htaccess 文件中的跳转规则

如果您修改了模板中的JS代码后,手机依然会跳转,那么很可能是服务器层面的跳转规则在起作用,这通常存在于网站根目录下的 .htaccess 文件中。

步骤 1:备份 .htaccess 文件

同样,先备份网站根目录下的 .htaccess 文件。

步骤 2:检查并修改 .htaccess 文件

  1. 用文本编辑器打开网站根目录下的 .htaccess 文件。

  2. 查找其中是否包含类似下面的 RewriteRule 规则:

    # 织梦手机站跳转规则
    RewriteCond %{HTTP_USER_AGENT} (android|blackberry|iphone|ipod|ipad|opera mobi|opera mini|iemobile|windows phone|palm|symbian|nokia|hpwos|fennec|motorola|samsung|sonyericsson|lg|htc|sgh|lenovo|zte|huawei|xiaomi|oppo|vivo|meizu)
    RewriteCond %{REQUEST_URI} !^/m/  # 这里的 /m/ 是手机站目录
    RewriteRule ^(.*)$ /m/ [L,R=302]

    或者

    # 强制手机跳转
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP:Accept} "text/vnd.wap.wml\|application/vnd.wap.xhtml+xml" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd|dang|doco|eric|hipt|htc|inno|ipaq|ipod|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge|lg/u|maui|maxo|midp|mits|mmef|mobi|mot|motor|msie|nec|newt|noki|palm|pana|pant|phil|play|port|prox|qtek|qwap|sage|sams|sany|sch|sec|send|seri|sgh|shar|sie|siem|smal|smar|sony|sph|symb|t-mo|teli|tim|tosh|tsm|upg|upsi|vk-v|voda|wap|wapa|wapi|wapp|wapr|webc|winw|winw|xda|xda" [NC]
    RewriteCond %{REQUEST_URI} !^/m/
    RewriteRule ^(.*)$ /m/ [L,R=302]
    </IfModule>
  3. 注释或删除这些规则

    • 注释方法:在规则的每一行前面加上 号。
      # RewriteCond %{HTTP_USER_AGENT} (android|blackberry|iphone|ipod|ipad|opera mobi|opera mini|iemobile|windows phone|palm|symbian|nokia|hpwos|fennec|motorola|samsung|sonyericsson|lg|htc|sgh|lenovo|zte|huawei|xiaomi|oppo|vivo|meizu)
      # RewriteCond %{REQUEST_URI} !^/m/
      # RewriteRule ^(.*)$ /m/ [L,R=302]
    • 删除方法:直接选中这几行,按 Delete 键删除。
  4. 保存 .htaccess 文件,然后上传到服务器,覆盖原文件。


总结与排查

完成以上步骤后,您的织梦5.7网站应该就不再进行手机跳转了。

如果问题依旧,请按以下顺序排查:

  1. 确认缓存:再次进入后台,清除所有缓存,包括浏览器缓存和CDN缓存(如果使用了CDN)。
  2. 确认文件:确保您修改的是正确的模板文件(index.htmhead.htm),并且代码已经被完全删除。
  3. 确认服务器:确认 .htaccess 文件中的跳转规则也已被注释或删除,有时候服务器上可能还有其他的配置文件(如Nginx的 nginx.conf),如果您使用的是Nginx服务器,则需要修改Nginx的配置文件,查找类似 if ($http_user_agent ~* "...") 的规则并删除。
  4. 确认代码:检查模板中是否还有其他第三方插件或模块加入了跳转代码,可以尝试临时切换到织梦默认的简单模板(如 templets/system/ 下的模板)进行测试。

通常情况下,方法一就能解决99%的问题,祝您操作顺利!

-- 展开阅读全文 --
头像
Linux C语言如何使用curl?
« 上一篇 02-08
dede两个网站图片路径如何统一?
下一篇 » 02-08

相关文章

取消
微信二维码
支付宝二维码

目录[+]