dede手机端跳转代码

99ANYc3cd6
预计阅读时长 19 分钟
位置: 首页 DEDE建站 正文
  1. JS 脚本跳转(推荐):通过检测浏览器设备类型,自动进行跳转,这种方法对SEO友好,因为搜索引擎访问时会被识别为PC端,而普通用户则根据设备跳转。
  2. PHP 服务器端跳转:在PHP层面进行判断和跳转,这种方法更彻底,但需要修改核心文件,不利于后期升级。

下面我将详细介绍这两种方法,并提供完整的代码和使用指南。

dede手机端跳转代码
(图片来源网络,侵删)

JS 脚本跳转(推荐)

这是最常用、最安全的方法,你只需要在模板文件中引入一段JS代码即可,无需修改DedeCMS的核心程序。

优点:

  • 非侵入性:只修改模板文件,不影响程序升级。
  • SEO友好:搜索引擎爬虫通常会被识别为PC设备,不会发生跳转,保证了网站在PC搜索引擎中的收录。
  • 实现简单:代码量少,易于部署。

操作步骤:

第1步:创建跳转脚本文件

  1. 在你的电脑上新建一个文本文档。
  2. 将下面的代码复制并粘贴到该文档中。
/**
 * DedeCMS 手机端与PC端智能跳转脚本
 * 使用方法:在需要跳转的页面模板中引入此脚本即可
 */
(function() {
    // 在这里配置你的手机端和PC端网址
    var mobileUrl = 'https://m.yourdomain.com'; // 替换成你的手机端网址
    var pcUrl = 'https://www.yourdomain.com';   // 替换成你的PC端网址
    // 获取当前浏览器的 user-agent 信息
    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) {
        // 如果是移动设备,并且当前不在手机端网址,则跳转到手机端
        if (window.location.href.indexOf(mobileUrl) < 0) {
            try {
                window.location.href = mobileUrl + window.location.pathname + window.location.search;
            } catch (e) {}
        }
    } else {
        // 如果是PC设备,并且当前不在PC端网址,则跳转到PC端
        if (window.location.href.indexOf(pcUrl) < 0) {
            try {
                window.location.href = pcUrl + window.location.pathname + window.location.search;
            } catch (e) {}
        }
    }
})();
  1. 将这个文档保存为 mobile_redirect.js
  2. 通过FTP工具,将 mobile_redirect.js 文件上传到你的DedeCMS网站服务器的某个目录下,/templets/js/ 目录。

第2步:在模板中引入脚本

打开你希望应用跳转功能的模板文件,这个功能应该在全站所有页面生效,所以最推荐修改的是网站的头部模板head.htm)。

dede手机端跳转代码
(图片来源网络,侵删)
  1. 登录DedeCMS后台,进入【模板】->【默认模板管理】。
  2. 找到并点击你当前使用的模板文件夹。
  3. 找到 head.htm 文件,点击后面的【修改】。
  4. <head></head> 标签之间的任意位置,加入以下代码:
<script type="text/javascript" src="{dede:global.cfg_cmspath/}/templets/js/mobile_redirect.js"></script>

注意:请确保 src 属性中的路径(/templets/js/mobile_redirect.js)与你上传文件的实际路径一致。{dede:global.cfg_cmspath/} 会自动获取网站根目录,这是一个好习惯。

点击【保存】。

第3步:配置跳转地址

最重要的一步:回到你上传的 mobile_redirect.js 文件,修改其中的网址。

dede手机端跳转代码
(图片来源网络,侵删)
// 在这里配置你的手机端和PC端网址
var mobileUrl = 'https://m.yourdomain.com'; // 替换成你的手机端网址
var pcUrl = 'https://www.yourdomain.com';   // 替换成你的PC端网址

请务必将 https://m.yourdomain.comhttps://www.yourdomain.com 替换成你自己的实际域名,确保你的手机站已经搭建好,并且可以通过这个域名访问。

完成! 现在清空浏览器缓存,用手机和电脑分别访问你的网站,应该会自动跳转到对应的版本了。


PHP 服务器端跳转

这种方法通过修改 index.php 文件,在服务器端就完成判断和跳转。

优点:

  • 逻辑彻底:在服务器层面完成跳转,即使浏览器禁用了JS也能生效。
  • 适用于特定场景:比如强制所有访问都跳转到手机版。

缺点:

  • 侵入性强:修改了 index.php 这个核心文件,当DedeCMS升级时,这个修改会被覆盖,需要重新修改。
  • 对SEO不友好:如果搜索引擎爬虫访问时被识别为移动设备,可能会被强制跳转到手机站,影响PC端的收录。

操作步骤:

  1. 通过FTP工具,找到网站根目录下的 index.php 文件,并将其下载到本地。
  2. 用代码编辑器(如VS Code, Sublime Text, Notepad++)打开 index.php 文件。
  3. 找到文件开头的 require_once(dirname(__FILE__)."/include/common.inc.php"); 这一行。
  4. 在这一行之前,加入以下PHP代码:
<?php
// ==============================
// DedeCMS 手机端与PC端跳转 (PHP版)
// ==============================
// 配置你的网址
$mobileUrl = 'https://m.yourdomain.com'; // 手机端网址
$pcUrl = 'https://www.yourdomain.com';   // PC端网址
// 获取客户端的 User-Agent
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
// 定义移动设备的关键词
$mobileKeywords = array('android', 'iphone', 'ipod', 'ipad', 'windows phone', 'mobile', 'blackberry');
// 判断是否为移动设备
$isMobile = false;
foreach ($mobileKeywords as $keyword) {
    if (strpos($userAgent, $keyword) !== false) {
        $isMobile = true;
        break;
    }
}
// 如果是移动设备,并且当前不在手机端网址,则跳转
if ($isMobile && strpos($_SERVER['HTTP_HOST'], str_replace('https://', '', $mobileUrl)) === false) {
    header("Location: $mobileUrl");
    exit();
}
// 如果是PC设备,并且当前不在PC端网址,则跳转
elseif (!$isMobile && strpos($_SERVER['HTTP_HOST'], str_replace('https://', '', $pcUrl)) === false) {
    header("Location: $pcUrl");
    exit();
}
// ==============================
// 以下是DedeCMS原始代码,请勿修改
// ==============================
?>
  1. 保存文件,然后通过FTP上传回服务器,覆盖原来的 index.php 文件。
  2. 同样,你需要将代码中的 $mobileUrl$pcUrl 替换成你自己的域名。

总结与建议

特性 方法一 (JS跳转) 方法二 (PHP跳转)
对SEO的影响 友好 (推荐) 不友好
程序升级影响 无影响 (推荐) 有影响,需重新修改
实现复杂度 简单 较简单
可靠性 依赖浏览器JS 服务器端强制,更彻底
适用场景 绝大多数网站 (个人站、企业站、博客等) 需要强制所有访问跳转的特定场景

对于99%的DedeCMS用户,我强烈推荐使用【方法一:JS脚本跳转】,它兼顾了SEO、易用性和安全性,是最佳实践。

如果你的网站有非常特殊的需求,比如一个活动页面需要强制所有人跳转到H5手机页,那么可以考虑在特定页面使用【方法二:PHP跳转】,或者将两种方法结合使用。

-- 展开阅读全文 --
头像
织梦文章内容表格边框
« 上一篇 03-08
C语言中a 10是什么意思?
下一篇 » 03-08

相关文章

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

目录[+]