dede绑定手机域名,如何设置与配置?

99ANYc3cd6
预计阅读时长 20 分钟
位置: 首页 DEDE建站 正文

这是一个非常常见的移动化网站需求,核心思想是:当用户通过手机访问时,自动将他们重定向到专门为手机优化的手机域名网站。

dede绑定手机域名
(图片来源网络,侵删)

整个过程可以分为两大步:

  1. 准备工作:创建手机网站。
  2. 设置重定向:在主站或服务器上配置,实现自动跳转。

第一步:准备工作 - 创建手机网站

在配置重定向之前,你必须先有一个手机网站可以跳转,这个手机网站可以是:

  • 一个完全独立的移动站点(m.yourdomain.com)。
  • 一个使用响应式设计、自适应PC和手机屏幕的网站(这种情况下就不需要跳转了,但通常独立手机站体验更好)。
  • 在主站内建立一个 /mobile/ 这样的目录,专门存放手机版内容。

我们以最常见的情况为例:你有一个独立的手机域名 m.yourdomain.com,并且已经将手机网站的所有文件上传并配置好了。


第二步:设置重定向 - 根据你的服务器环境选择方法

重定向的关键是 “识别用户设备”“执行跳转”,识别设备主要通过检测 HTTP_USER_AGENT(用户代理),也就是浏览器发送的字符串,里面包含了设备信息(如 iPhone, Android, iPad 等)。

dede绑定手机域名
(图片来源网络,侵删)

以下是几种主流服务器环境下的配置方法:

使用 PHP 代码 (推荐,通用性最强)

这是最灵活的方法,可以直接将代码放在你主站的 index.php 文件中,它适用于任何支持 PHP 的服务器环境。

操作步骤:

  1. 打开你主网站的根目录下的 index.php 文件。
  2. <?php 标签之后,require_once(dirname(__FILE__)."/include/common.inc.php"); 这行代码之前,添加以下 PHP 代码。
<?php
// ====================== 手机域名重定向开始 ======================
// 设置你的手机域名
$mobile_domain = 'm.yourdomain.com';
// 获取用户的 User-Agent
$user_agent = $_SERVER['HTTP_USER_AGENT'];
// 定义一个移动设备列表数组
$mobile_agents = array(
    'iphone', 'android', 'phone', 'mobile', 'wap', 'netfront', 'opera mobi', 
    'opera mini', 'iemobile', 'samsung', 'nokia', 'sonyericsson', 
    'blackberry', 'ucweb', 'windows ce', 'symbian', 'series60', 
    'series40', 'samsung', 'nokia', 'sonyericsson', 'blackberry', 'ipad'
);
// 检查 User-Agent 中是否包含移动设备关键词
$is_mobile = false;
foreach ($mobile_agents as $device) {
    if (strpos(strtolower($user_agent), $device) !== false) {
        $is_mobile = true;
        break;
    }
}
// 如果是移动设备访问,并且当前访问的不是手机域名,则执行跳转
if ($is_mobile && strpos(strtolower($_SERVER['HTTP_HOST']), $mobile_domain) === false) {
    // 获取当前页面的URL路径,/about.html
    $path = $_SERVER['REQUEST_URI'];
    // 构建完整的手机域名URL
    $mobile_url = 'http://' . $mobile_domain . $path;
    // 执行301永久跳转,有利于SEO
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: " . $mobile_url);
    // 终止脚本执行
    exit();
}
// ====================== 手机域名重定向结束 ======================
require_once(dirname(__FILE__)."/include/common.inc.php");
// ... 后面的 dedecms 代码 ...

代码说明:

dede绑定手机域名
(图片来源网络,侵删)
  • $mobile_domain = 'm.yourdomain.com';请务必修改成你自己的手机域名
  • 这个脚本会检查访问者是否在使用手机或平板,如果是,并且他访问的是主域名(如 www.yourdomain.com),就会自动将他永久重定向到手机域名(如 m.yourdomain.com)的相同页面。
  • 使用 301 跳转是最佳实践,它告诉搜索引擎这个页面已经永久移动到了新地址,对SEO非常友好。

使用 Nginx 服务器配置 (如果你的服务器是 Nginx)

Nginx 性能更高,通过配置文件来实现重定向是更优的选择。

操作步骤:

  1. 登录你的 Nginx 服务器。
  2. 找到你的网站配置文件,通常位于 /etc/nginx/sites-available/ 目录下,文件名可能是你的域名。
  3. server 块中添加以下 locationif 判断。
server {
    listen 80;
    server_name www.yourdomain.com yourdomain.com; # 你的主域名
    # ... 其他配置,如 root, index 等 ...
    # ====================== 手机域名重定向开始 ======================
    # 检测 User-Agent 并重定向
    if ($http_user_agent ~* "(iphone|android|phone|mobile|wap|netfront|opera mobi|opera mini|iemobile|samsung|nokia|sonyericsson|blackberry|ucweb|windows ce|symbian|series60|series40|ipad)") {
        # 如果访问的不是手机域名,则重定向
        if ($host != "m.yourdomain.com") {
            return 301 http://m.yourdomain.com$request_uri;
        }
    }
    # ====================== 手机域名重定向结束 ======================
    # ... DedeCMS 的其他 location 配置 ...
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    # ... PHP-FPM 配置等 ...
}

配置说明:

  • if ($http_user_agent ~* "..."):这里的 表示不区分大小写的正则匹配,括号里的列表和方法一中的 PHP 代码类似,都是常见的移动设备关键词。
  • if ($host != "m.yourdomain.com"):确保只有访问主域名时才跳转,避免手机域名访问自身时又跳回去,造成死循环。
  • return 301 http://m.yourdomain.com$request_uri;:执行 301 跳转,$request_uri 会自动保留用户原来访问的路径。
  1. 保存文件后,重新加载 Nginx 配使生效:
    sudo nginx -s reload

使用 Apache 服务器配置 (如果你的服务器是 Apache)

操作步骤:

  1. 登录你的 Apache 服务器。
  2. 确保你的网站启用了 mod_rewrite 模块(DedeCMS 的伪静态已经需要它了)。
  3. 在网站的根目录下创建或编辑 .htaccess 文件。
  4. 在文件中添加以下代码:
# ====================== 手机域名重定向开始 ======================
<IfModule mod_rewrite.c>
    RewriteEngine On
    # 定义移动设备列表
    RewriteCond %{HTTP_USER_AGENT} "iphone|android|phone|mobile|wap|netfront|opera mobi|opera mini|iemobile|samsung|nokia|sonyericsson|blackberry|ucweb|windows ce|symbian|series60|series40|ipad" [NC]
    # 如果访问的是主域名,则重定向到手机域名
    RewriteCond %{HTTP_HOST} !^m\.yourdomain\.com [NC]
    RewriteRule ^(.*)$ http://m.yourdomain.com/$1 [L,R=301]
</IfModule>
# ====================== 手机域名重定向结束 ======================

配置说明:

  • RewriteCond:设置重定向的条件。
    • 第一行:检查 HTTP_USER_AGENT 是否包含移动设备关键词,[NC] 表示不区分大小写。
    • 第二行:检查主机名 HTTP_HOST 是否不等于 m.yourdomain.com[NC] 也是不区分大小写,这个条件很重要,防止死循环。
  • RewriteRule:满足条件后执行的规则。
    • ^(.*)$:匹配所有 URL 路径。
    • http://m.yourdomain.com/$1:跳转到手机域名,并保留原始路径。
    • [L,R=301]L 表示如果匹配到此规则,则停止后续的 Rewrite 规则;R=301 表示执行 301 重定向。

总结与注意事项

  1. 选择哪种方法?

    • 通用性首选PHP 方法,如果你不确定服务器环境,或者没有服务器管理权限,用 PHP 代码最稳妥。
    • 性能最佳Nginx/Apache 配置,如果你有服务器管理权限,推荐使用服务器配置,因为它在请求处理的早期阶段就完成了重定向,效率更高。
  2. 死循环问题:无论用哪种方法,一定要确保访问手机域名时不会再次触发重定向,上面的代码中都通过判断 $host 或当前域名是否为手机域名来避免了这个问题。

  3. SEO 考虑:务必使用 301 (永久重定向),而不是 302 (临时重定向),这有助于搜索引擎将移动域名的权重正确传递,避免内容重复的问题。

  4. 内容同步:主站和手机站的内容需要保持同步,你可以手动同步,也可以通过开发接口等方式实现自动化同步,DedeCMS 本身没有内置的移动站同步功能,需要自行开发或借助第三方插件。

  5. 测试:配置完成后,务必使用手机或浏览器的“开发者工具”模拟手机设备进行测试,确保跳转正常,同时也要用 PC 访问,确保不会误跳转。

按照以上步骤操作,你就可以成功为你的 DedeCMS 网站绑定手机域名了。

-- 展开阅读全文 --
头像
dede源码安装步骤是怎样的?
« 上一篇 04-27
织梦验证码为何显示不了?
下一篇 » 04-27

相关文章

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

目录[+]