场景

域名 描述
pc端 www.one.com 用于pc端访问官网
移动端 m.one.com 用于移动端访问

现在的需求是这样,在pc端访问www.one.comm.one.com都跳转到www.one.com
而在移动端访问www.one.comm.one.com都跳转到m.one.com

参考,github上的这篇文章很详细,但是比较复杂,很多场景我们用不到,所以参考这个,我修改如下。

pc端:www.one.com

  server {
listen 80;
server_name www.one.com; #charset koi8-r;
#access_log logs/host.access.log main;
# 下面根据user_agent可以获取
if ($http_host !~ "^www.one.cn$") {
rewrite ^(.*) http://www.one.cn$1 permanent;
}
if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
rewrite ^(.*) http://m.one.com$1 permanent;
}
location / {
root /home/build/rampage-home-front/dist/html;
index index.html index.htm;
} }

作用部分代码如下:

 if ($http_host !~ "^www.one.cn$") {
rewrite ^(.*) http://www.one.cn$1 permanent;
}
if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
rewrite ^(.*) http://m.one.com$1 permanent;
}

移动端:m.one.com

  server {
listen 80;
server_name m.one.cn; #charset koi8-r;
#access_log logs/host.access.log main;
#非移动端跳转到 www.one.com
if ($http_user_agent !~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
rewrite ^(.*) http://www.one.com$1 permanent;
} location / {
root /home/build/rampage-mobile-front/dist;
index index.html index.htm;
}
}

作用部分代码如下:

 if ($http_user_agent !~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
rewrite ^(.*) http://www.one.com$1 permanent;
}

至此完成了相关配置

实例配置:

PC端网站配置文件

 server {
listen 80 default_server;
listen [::]:80 default_server;
server_name weifeng.com;
root /usr/share/nginx/html;
rewrite ^(.*)$ https://${server_name}$1 permanent; include /etc/nginx/default.d/*.conf; if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
rewrite ^(.*) https://m.weifeng.com$1 permanent;
} location / {
} error_page 404 /404.html;
location = /40x.html {
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
} server {
listen 443;
server_name weifeng.com;
ssl on;
root /usr/share/nginx/html;
index index.html index.htm;
ssl_certificate /cert/weifeng.com.pem;
ssl_certificate_key /cert/weifeng.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on; if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
rewrite ^(.*) https://m.weifeng.com$1 permanent;
} location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}

  

移动端nginx配置文件

    server {
listen 80;
server_name m.weifeng.com;
root /usr/share/nginx/html-mobile;
rewrite ^(.*)$ https://${server_name}$1 permanent; location / {
} error_page 404 /404.html;
location = /40x.html {
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
} server { listen 443;
server_name m.weifeng.com;
ssl on;
root /usr/share/nginx/html-mobile;
index index.html index.htm;
ssl_certificate /cert/weifeng.com.pem;
ssl_certificate_key /cert/weifeng.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on; location / {
root /usr/share/nginx/html-mobile;
index index.html index.htm;
}
}

  

nginx 移动端和pc端自动跳转的更多相关文章

  1. asp.net Core 使用过滤器判断请求客户端是否为移动端,并实现PC端和移动端请求映射和自动跳转

    很多时候我们做网站时单纯的用bootstrap等前端框架实现的前端自适应带给用户的体验并不太好,所以为了提高用户体验会专门针对PC端网页重新设计一套移动端网页,但是怎么才能做到在移动端访问PC页面的时 ...

  2. 【Javascript Demo】移动端访问PC端网页时跳转到对应的移动端网页

    不想通过CSS自适应在PC端和移动端分别显示不同的样式,那么只能通过在移动端访问PC端网页时跳转到对应的移动端网页了,那么怎么跳转呢,网上也有很多文章说明,下面是本人测试有效的方式. 1.效果图 PC ...

  3. iis 如何搭建url 重定向,实现无线端和pc端不同的跳转

    第一步,下载安装ARR(Application Request Routing), http://www.iis.net/downloads/microsoft/application-request ...

  4. JavaScript判断移动端及pc端访问不同的网站

    JavaScript判断移动端及pc端访问不同的网站 现在很多网站都是分为两个版本,一个pc端的一个移动端的(响应式除外),针对这两个版本,就需要对访问的设备进行判断,如果是pc,就直接访问pc网站, ...

  5. js判断是移动端还是pc端

    运行页面的时候,执行到js会判断来自于移动端还是pc端,如果是移动端则跳转制定链接地址,这样在手机端会有额外的不必要浪费的加载时间 var browser={ versions:function(){ ...

  6. js常见的判断移动端或者pc端或者安卓和苹果浏览器的方法总结

    1.js常见的判断移动端或者pc端或者安卓和苹果浏览器的方法总结 : http://www.haorooms.com/post/js_pc_iosandmobile 2.Js判断客户端是否为PC还是手 ...

  7. js判断移动端还是PC端

    function isMobile(){ var sUserAgent= navigator.userAgent.toLowerCase(), bIsIpad= sUserAgent.match(/i ...

  8. js判断游览器是移动端还是PC端

    js判断网页游览器是移动端还是PC端 <script type="text/javascript"> function browserRedirect() { var ...

  9. 检测当前运行环境——移动端与PC端。

    方法1: $(function checkBrowser(){ var browser={ versions:function(){ var u = navigator.userAgent, app ...

  10. 关于移动端和PC端的交互的区别

    对于现在的移动端设备的普及,移动端上的用户体验成了一个重要的关注点. 看了一些网上的关于移动端的交互和用户体验的知识,这里总结了一些.若有不足的地方,希望大家能够积极补充. PC端和移动端的产品的设计 ...

随机推荐

  1. G6 知识点

    Viser 一个基于 G2 实现的,为数据可视化工程师量身定制的工具. Viser-Graph 一个基于 G6 实现的,为呈现关系型数据的定制化工具. Mode 是 G6 提供的图上事件的管理机制. ...

  2. 2019牛客暑期多校训练营(第六场) H:Train Driver (最短路+概率)

    题意:给定无向图,Alice在A集合选一个点,Bob在B集合选一个点,CXK在全集里选择一个点. 然后问“三人到某一点集合打篮球的最小距离”的期望. 思路:做过一个裸题,就是给定三人位置,问去哪里集合 ...

  3. MySQL 多行数据合并 GROUP_CONCAT

    表结构及数据 DROP TABLE IF EXISTS `course`;CREATE TABLE `course` ( `name` varchar(255) CHARACTER SET utf8 ...

  4. vector Construct

    #include<vector> #include<iostream> using namespace std; void Test(); void main() { ,,,, ...

  5. js spread object

    What’s is the benefit / drawback of these two alternatives? Using object spread options = {...option ...

  6. [译] 2017 年比较 Angular、React、Vue 三剑客

    原文地址:Angular vs. React vs. Vue: A 2017 comparison 原文作者:Jens Neuhaus 译文出自:掘金翻译计划 本文永久链接:github.com/xi ...

  7. RxSwift 在本质上简化了开发异步程序

    RxSwift 是一个组合异步和事件驱动编程的库,通过使用可观察序列和功能样式运算符来,从而允许通过调度程序进行参数化执行. RxSwift 在本质上简化了开发异步程序,允许代码对新数据作出反应,并以 ...

  8. 一些开源的dashboard 解决方案

    简单收集了以下开源dashboard 的项目,记录下 plotly-dash 基于python 的dash 开发工具,很不错 项目地址 https://github.com/plotly/dash k ...

  9. SQL Server数据库应用技术

    SQL Server数据库应用技术 SQL是Structured Query Language的缩写.SQL是操作命令集,是一种功能齐全的数据库语言.SQL功能强大.简单.易学.使用方便,已经成为了数 ...

  10. File Browser文件资源服务器

    要是想一键启动的,这里有个封装版本的,上传到服务器,执行sh命令就能直接启动,也可以修改配置 链接:https://pan.baidu.com/s/1oVP5DrEQSV9hQmnF2bzM9A提取码 ...