NGINX $http_user_agent 导致 404 响应

NGINX $http_user_agent 导致 404 响应

当用户代理与子字符串“MSIE 8”匹配时,以下条件是否会导致 404 重定向?

 #Begin IE8 Hack
 if ($http_user_agent ~* 'MSIE 8') {
     #set $hack "I";
 }
 #End IE8 Hack

注释掉可if ($http_user_agent...停止 404 重定向。

这里发生了什么?

Curl 请求

curl -XGET'https://localhsot/[电子邮件保护]' -v -A'Mozilla/4.0 (兼容;MSIE 8.0;Windows NT 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;.NET4.0C;.NET4.0E;MDDSJS)'

环境

  • NGINX 1.6.2
  • Linux Debian 7 3.2.0-4-amd64

完整配置

server {

listen 80 default_server;

root /var/www/frontend;

#Begin IE8 Hack
error_page               418 = @PATCH;
location @PATCH {
  proxy_method          PATCH;
  proxy_pass            http://0.0.0.0:3001;
  proxy_redirect        default;
}
#End IE8 Hack

location / {
  #Begin IE8 Hack
  if ($http_user_agent ~* 'MSIE 8') {
    #set $hack "I";
  }
  #if ($request_method = PUT) {
  #   set $hack "${hack}E";
  #}
  #if ($hack = IE) {
  #   return 418;
  #}
  #End IE8 Hack

  proxy_pass            http://0.0.0.0:3001/v1/;
  proxy_redirect        default;
 }
}

相关内容