Nginx配置——区分PC或手机访问不同域名

首先是新官网的Nginx配置文件加个跳转判断,通过user-agent判断来源是移动端还是PC端:

server {
    listen 80;
       server_name www.*com   *.com; // 新官网域名     
        rewrite .* https://$host$request_uri last; 
}
 
 server {
     listen       443 ssl;
     server_name www.*.com *.com;  // 新官网域名    
    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)" ){ // 跳转判断      
                  rewrite  ^/(.*)$  https://m.7d.com$uri redirect; // redirect表示302跳转(暂时性转移)      }     
     ……
 }
  然后是旧官网的配置文件改成新域名,同样要做跳转判断,把不是移动端访问的请求跳转回新官网。

格式: error_log /dev/null crit;

  server {
     listen 80;
     server_name m.*.com; // 旧官网域名     
     rewrite .* https://$host$request_uri last;   }
 
     server {
      listen       443 ssl;
      server_name m.*.com;  // 旧官网域名   
      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)" ){ 
                        // ~前加个!,如果不是移动端访问,则跳转回新官网。        
                         rewrite  ^/(.*)$  https://m.7d.com$uri redirect; 
                         // redirect表示302跳转   
          }     
     ……
  }

猜你喜欢

转载自my.oschina.net/7795442/blog/1624512