nginx配置移动端和PC端自动跳转

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx配置移动端和PC端自动跳转相关的知识,希望对你有一定的参考价值。

参考技术A 需求:
在pc端访问 www.mabang.com 和 m.mabang.com 都跳转到 www.mabang.com
在移动端访问 www.mabang.com 和 m.mabang.com 都跳转到 m.mabang.com

nginx配置文件:

PC端配置文件
pc.conf配置

server
listen 80;
server_name www.mabang.com mabang.com ;
index index.html index.htm index.php default.html default.htm default.php;
# 域名跳转
if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry))

rewrite ^(.*) http://m.mabang.com permanent;



移动端配置文件
m.conf配置
server
listen 80;
server_name m.mabang.com;
index index.html index.htm index.php default.html default.htm default.php;
# 域名跳转
if ($http_user_agent !~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry))

rewrite ^(.*) http://www.mabang.com permanent;



注意:如果想让pc 跳转到移动或者移动跳转到pc, 是302 临时重定向,可以修改 permanent 为 redirect

redirect – 返回临时重定向的HTTP状态302
permanent – 返回永久重定向的HTTP状态301

nginx反向代理PC端和手机端分别请求各自后台工程

一、场景介绍:
公司准备在阿里云环境上部署一套域名环境,因绑定域名时间问题,决定采用迂回方案,将域名绑定在本地一台nginx上,由域名nginx指向阿里云新部署的nginx,阿里云nginx反向代理后端两个工程,一个是PC页面一个是手机端页面。
来实现手机端访问域名跳转到后端手机工程,PC端访问域名跳转到后端PC工程。

二、编辑阿里云nginx配置文件
直接上图:
技术图片

#jchx_web.conf

upstream myh5 {
server 10.10.17.38:8076;
}

server {
listen 8082;

location / {

    root html;
    index index.html;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    if ( $http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry) ) {
            proxy_pass http://myh5;
    }

    proxy_pass http://10.10.17.38:8076/jchx_web/;

}

error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}     

}

三、重启nginx测试

        经测试访问PC域名时访问的是PC端页面。
        经测试访问M域名时访问的是手机端页面。

以上是关于nginx配置移动端和PC端自动跳转的主要内容,如果未能解决你的问题,请参考以下文章

nginx反向代理PC端和手机端分别请求各自后台工程

PHP判断访问者手机移动端还是PC端的函数,亲测好用

vuecli3 实现 移动端和pc端 界面切换(两套代码)

安卓页面的跳转(按钮点击跳转自动跳转)

phpcms怎么做到移动端和pc端同步使用数据,并且,都要静态化页面,帮我解决再加100分

php 判断是否手机端还是pc端