本文最后更新于 2023-12-21,文章距离上次更新已经超过30天啦~文章内容可能已经过时。

使用Nginx配置文件区分PC或手机访问不同网站

前言

由于PC端和移动端的浏览器环境和用户体验差异较大,有时我们需要根据用户使用的设备类型将其重定向至不同的网页版本。Nginx作为一种高性能的HTTP和反向代理服务器,其灵活的配置能力可以帮助我们实现这种需求。

以下是一种使用Nginx配置文件来区分PC端和移动端访问的方法。

步骤

  1. 安装Nginx

    对于大多数Linux发行版,你可以使用默认的包管理器来安装Nginx。例如,在Ubuntu上,你可以使用apt:

    sudo apt update
    sudo apt install nginx
    

    对于其他操作系统,你可以参考Nginx的官方安装指南

  2. 编辑Nginx配置文件

    使用你最喜欢的文本编辑器打开Nginx的配置文件。这个文件通常位于/etc/nginx/nginx.conf,或者在/etc/nginx/sites-available/的某个文件中。

    sudo nano /etc/nginx/nginx.conf
    
  3. 添加移动设备检测代码

    http部分中,添加以下代码:

    map $http_user_agent $mobile {
        default 0;
        "~*Mobile" 1;
        "~*Android" 1;
        "~*webOS" 1;
        "~*iPhone" 1;
        "~*iPod" 1;
        "~*BlackBerry" 1;
        "~*Windows Phone" 1;
    }
    

    这段代码会检测用户的User-Agent数据,如果包含任何移动设备的关键字,就将变量$mobile设置为1

  4. 配置重定向规则

    server部分中,添加以下代码:

    if ($mobile = 1) { 
        rewrite ^ http://m.example.com$request_uri? permanent; 
    }
    

    这段代码会检查$mobile变量。如果这个变量为1,表示用户正在使用移动设备,那么Nginx就会将用户重定向至m.example.com的相应页面。

  5. 保存并退出

    按Ctrl+X,然后按Y,再按Enter保存并退出编辑器。

  6. 重启Nginx

    使用以下命令重启Nginx,使更改生效:

    sudo service nginx restart
    

至此,你的Nginx服务器已经被配置为将移动设备用户重定向至移动版网页。请确保你的网站有适合移动设备的版本,并且URL与PC版相匹配。