首页 Nginx 检查nginx中的几个用户代理

检查nginx中的几个用户代理

我需要根据用户代理将流量重定向到一个后端或另一个后端.这是正确的做法吗?server { listen 80; server_name my_domain.com; if ($http_user_agent ~ iPhone ) { rewrite ^(.*) https://m.domain1

我需要根据用户代理将流量重定向到一个后端或另一个后端.这是正确的做法吗?

server {
    listen      80;
    server_name my_domain.com;

    if ($http_user_agent ~ iPhone ) {
        rewrite     ^(.*)   https://m.domain1.com$1 permanent;
    }
    if ($http_user_agent ~ Android ) {
        rewrite     ^(.*)   https://m.domain1.com$1 permanent;
    }
    if ($http_user_agent ~ MSIE ) {
        rewrite     ^(.*)   https://domain2.com$1 permanent;
    }
    if ($http_user_agent ~ Mozilla ) {
        rewrite     ^(.*)   https://domain2.com$1 permanent;
    }
}

最佳答案
如果您使用的是0.9.6或更高版本,则可以使用带有正则表达式的map(1.0.4或更高版本可以使用*而不仅仅是而使用不区分大小写的表达式):

http {
  map $http_user_agent $ua_redirect {
    default '';
    ~(iPhone|Android) m.domain1.com;
    ~(MSIE|Mozilla) domain2.com;
  }

  server {
    if ($ua_redirect != '') {
      rewrite ^ https://$ua_redirect$request_uri? permanent;
    }
  }
}

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/yunying/nginx/20200925/10811.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部