如何使用NGinx地图redirect过时的浏览器?

我们在我们的Web应用程序前面有一个NginX平衡代理。 不幸的是,没有足够的开发资源来支持过时的浏览器,但是:(我们希望通过浏览器的用户代理数据( https://www.in2circle.com/outdated )将我们的web项目的成员redirect到/过期的页面,出于某种原因,我们不想用User-Agent内容分析逻辑加载后端。我听说用NginX很容易处理http://nginx.org/en/docs/http/ngx_http_map_module.html如果有人这样做,请你帮助我的例子和解释,请!

下一个解决scheme工作得很好,正是我想要的:

map $http_user_agent $outdated { default 0; "~MSIE [1-9]\." 1; "~Mozilla.*Firefox/[1-9]\." 1; "~Mozilla.*Firefox/[0-2][0-9]\." 1; "~Mozilla.*Firefox/3[0-1]\." 1; "~Opera.*Version/[0-9]\." 1; "~Opera.*Version/[0-1][0-9]\." 1; "~Opera.*Version/2[0-1]\." 1; "~AppleWebKit.*Version/[0-6]\..*Safari" 1; "~Chrome/[0-9]\." 1; "~Chrome/[0-2][0-9]\." 1; "~Chrome/3[0-3]\." 1; } if ($outdated = 1){ rewrite ^ /outdated redirect; } 

感谢大家的帮助/答案。

简单的testing就足够了:

 location / { if ($http_user_agent ~ "MSIE 6.0" ) { set $browser-version outdated; } if ($http_user_agent ~ "MSIE 7.0" ) { set $browser-version outdated; } if ($http_user_agent ~* "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino") { set $browser-version mobile; } if ( $uri ~ ^/(images|favicon\.ico) ) { set $browser-version independent; } if ($browser-version = outdated) { rewrite ^ /outdated/index.html break; } if ($browser-version = mobile) { rewrite ^ /mobile/index.html break; } }