How to configure Nginx to distinguish between PC or mobile phone access to different domain names

How to configure Nginx to distinguish between PC or mobile phone access to different domain names

The new official website is online, but the experience of accessing the new official website on a mobile phone is very poor. It is required to access the old official website when accessing the new official website on a mobile phone. Automatic jump can be achieved by modifying the Nginx configuration.

First, add a jump judgment to the Nginx configuration file of the new official website, and use the user-agent to determine whether the source is a mobile terminal or a PC terminal:

server {
  listen 80;
  server_name www.7d.com 7d.com; // New official website domain name rewrite .* https://$host$request_uri last;
}

server {
  listen 443 ssl;
  server_name www.7d.com 7d.com; // New official website domain name root /data/7d;
  charset utf-8;
  ssl_certificate /usr/local/nginx/_.7d.com.crt;
  ssl_certificate_key /usr/local/nginx/_.7d.com.key;

  rewrite /s1$ http://s1.7d.com/start last;

  if ( $http_user_agent ~* "(Android|iPhone|Windows Phone|UC|Kindle)" ){ // Redirect judgment rewrite ^/(.*)$ https://m.7d.com$uri redirect; // redirect means 302 redirect (temporary transfer) 
  }   
  …
}

Then the configuration file of the old official website is changed to the new domain name. Jump judgment is also required to jump back to the new official website if the request is not for mobile access.

 server {
  listen 80;
  server_name m.7d.com; // old official website domain name rewrite .* https://$host$request_uri last;
}

server {
  listen 443 ssl;
  server_name m.7d.com; // old official website domain name root /data/7d;
  charset utf-8;
  ssl_certificate /usr/local/nginx/_.7d.com.crt;
  ssl_certificate_key /usr/local/nginx/_.7d.com.key;

  rewrite /s1$ http://s1.7d.com/start last;

  if ( $http_user_agent !~* "(Android|iPhone|Windows Phone|UC|Kindle)" ){ // Add a ! before ~. If it is not accessed from a mobile device, it will jump back to the new official website.
    rewrite ^/(.*)$ https://m.7d.com$uri redirect; // redirect means 302 redirect}   
  …
}

In this way, when a mobile phone accesses the domain name of the new official website 7d.com, it actually accesses the content of the old official website. Click the address bar of the browser and you will find that the domain name is m.7d.com.

In fact, it is based on HTTP_USER_AGENT to make a judgment and use Nginx to do a 302 jump. If the last word redirect in the rewrite statement is changed to permanent, it means a 301 jump (permanent transfer).

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • Implementation of Nginx configuration of multi-port and multi-domain name access
  • Solve the problem of modifying configuration access of tp5 under nginx
  • How to configure nginx to limit the access frequency of the same IP
  • Steps to configure nginx ssl to implement https access (suitable for novices)
  • Detailed explanation of Nginx access restriction configuration
  • Detailed explanation of nginx using ssl module configuration to support HTTPS access
  • How to use nginx to configure access to wgcloud

<<:  vue uses Ele.me UI to imitate the filtering function of teambition

>>:  mysql method to view the currently used configuration file my.cnf (recommended)

Recommend

Repair solution for inconsistent MySQL GTID master and slave

Table of contents Solution 1: Rebuild Replicas Pr...

The difference between the four file extensions .html, .htm, .shtml and .shtm

Many friends who have just started to make web pag...

Example code for configuring monitoring items and aggregated graphics in Zabbix

1. Install Zabbix Agent to monitor the local mach...

Tutorial on configuring and using i3 window manager in Linux

In this article, I will show you how to install a...

Solve the problem of blank gap at the bottom of Img picture

When working on a recent project, I found that th...

About input file control and beautification

When uploading on some websites, after clicking t...

Web skills: Multiple IE versions coexistence solution IETester

My recommendation Solution for coexistence of mul...

Tutorial on using the hyperlink tag in HTML

The various HTML documents of the website are con...

How to use selenium+testng to realize web automation in docker

Preface After a long time of reading various mate...

A brief discussion on the correct approach to MySQL table space recovery

Table of contents Preliminary Notes Problem Repro...

How to implement email alert in zabbix

Implemented according to the online tutorial. zab...

Explanation of the working mechanism of namenode and secondarynamenode in Hadoop

1) Process 2) FSImage and Edits Nodenode is the b...

Some problems that may be caused by inconsistent MySQL encoding

Stored procedures and coding In MySQL stored proc...