- JS 脚本跳转(推荐):通过检测浏览器设备类型,自动进行跳转,这种方法对SEO友好,因为搜索引擎访问时会被识别为PC端,而普通用户则根据设备跳转。
- PHP 服务器端跳转:在PHP层面进行判断和跳转,这种方法更彻底,但需要修改核心文件,不利于后期升级。
下面我将详细介绍这两种方法,并提供完整的代码和使用指南。

(图片来源网络,侵删)
JS 脚本跳转(推荐)
这是最常用、最安全的方法,你只需要在模板文件中引入一段JS代码即可,无需修改DedeCMS的核心程序。
优点:
- 非侵入性:只修改模板文件,不影响程序升级。
- SEO友好:搜索引擎爬虫通常会被识别为PC设备,不会发生跳转,保证了网站在PC搜索引擎中的收录。
- 实现简单:代码量少,易于部署。
操作步骤:
第1步:创建跳转脚本文件
- 在你的电脑上新建一个文本文档。
- 将下面的代码复制并粘贴到该文档中。
/**
* 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) {}
}
}
})();
- 将这个文档保存为
mobile_redirect.js。 - 通过FTP工具,将
mobile_redirect.js文件上传到你的DedeCMS网站服务器的某个目录下,/templets/js/目录。
第2步:在模板中引入脚本
打开你希望应用跳转功能的模板文件,这个功能应该在全站所有页面生效,所以最推荐修改的是网站的头部模板(head.htm)。

(图片来源网络,侵删)
- 登录DedeCMS后台,进入【模板】->【默认模板管理】。
- 找到并点击你当前使用的模板文件夹。
- 找到
head.htm文件,点击后面的【修改】。 - 在
<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 文件,修改其中的网址。

(图片来源网络,侵删)
// 在这里配置你的手机端和PC端网址 var mobileUrl = 'https://m.yourdomain.com'; // 替换成你的手机端网址 var pcUrl = 'https://www.yourdomain.com'; // 替换成你的PC端网址
请务必将 https://m.yourdomain.com 和 https://www.yourdomain.com 替换成你自己的实际域名,确保你的手机站已经搭建好,并且可以通过这个域名访问。
完成! 现在清空浏览器缓存,用手机和电脑分别访问你的网站,应该会自动跳转到对应的版本了。
PHP 服务器端跳转
这种方法通过修改 index.php 文件,在服务器端就完成判断和跳转。
优点:
- 逻辑彻底:在服务器层面完成跳转,即使浏览器禁用了JS也能生效。
- 适用于特定场景:比如强制所有访问都跳转到手机版。
缺点:
- 侵入性强:修改了
index.php这个核心文件,当DedeCMS升级时,这个修改会被覆盖,需要重新修改。 - 对SEO不友好:如果搜索引擎爬虫访问时被识别为移动设备,可能会被强制跳转到手机站,影响PC端的收录。
操作步骤:
- 通过FTP工具,找到网站根目录下的
index.php文件,并将其下载到本地。 - 用代码编辑器(如VS Code, Sublime Text, Notepad++)打开
index.php文件。 - 找到文件开头的
require_once(dirname(__FILE__)."/include/common.inc.php");这一行。 - 在这一行之前,加入以下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原始代码,请勿修改
// ==============================
?>
- 保存文件,然后通过FTP上传回服务器,覆盖原来的
index.php文件。 - 同样,你需要将代码中的
$mobileUrl和$pcUrl替换成你自己的域名。
总结与建议
| 特性 | 方法一 (JS跳转) | 方法二 (PHP跳转) |
|---|---|---|
| 对SEO的影响 | 友好 (推荐) | 不友好 |
| 程序升级影响 | 无影响 (推荐) | 有影响,需重新修改 |
| 实现复杂度 | 简单 | 较简单 |
| 可靠性 | 依赖浏览器JS | 服务器端强制,更彻底 |
| 适用场景 | 绝大多数网站 (个人站、企业站、博客等) | 需要强制所有访问跳转的特定场景 |
对于99%的DedeCMS用户,我强烈推荐使用【方法一:JS脚本跳转】,它兼顾了SEO、易用性和安全性,是最佳实践。
如果你的网站有非常特殊的需求,比如一个活动页面需要强制所有人跳转到H5手机页,那么可以考虑在特定页面使用【方法二:PHP跳转】,或者将两种方法结合使用。
