location /break/ {  
     rewrite ^/break/(.*) /test/$1 break;  
     return 402;  
}  
  
location /last/ {  
     rewrite ^/last/(.*) /test/$1 last;  
     return 403;  
}  
  
location /test/ {  
     return 508;  
} 

请求: http://domain/break/*
返回:404

请求: http://domain/last/*

返回:508

原因:根据上述内容,break与last都停止处理后续rewrite指令集,不同之处在与last会重新发起新的请求,而break不会。当请求break时,如匹配内容存在的话,可以直接请求成功,返回200;

而如果请求内容不存在,则返回404。当请求为last的时候,会对重写的新uri重新发起请求,如上例则返回508。

总结:last与break都停止处理后续rewrite指令集,最大的不同是,last会重新发起一个新请求,并重新匹配location。 

相关文章:

  • 2022-12-23
  • 2021-07-25
  • 2022-12-23
  • 2022-12-23
  • 2021-05-26
  • 2022-03-07
猜你喜欢
  • 2021-10-17
  • 2022-12-23
  • 2022-12-23
  • 2021-08-12
  • 2021-07-08
相关资源
相似解决方案