Nginx Rewrite - 使用中断标志时指定替换 URL 的目的

Nginx Rewrite - 使用中断标志时指定替换 URL 的目的

这个问题是重写 break 与 last。据我所知,break 语句将停止处理当前的一组重写语句,而不是触发新的位置搜索,它将继续处理当前位置块中的其余语句。如果是这种情况,那么重写指令中给出的替换 url 的用途是什么。

答案1

如果找到匹配的重写规则,则使用指定的规则编写新的 URI。

使用break关键字 nginx 在位置块重写内使用新的 URI。

因此,如果当前没有其他内容,locationnginx 将尝试使用新 URI 提供文件。如果您有proxy_pass或类似内容,则它将使用新 URI 转发请求。

如果last指定了关键字,那么在创建新的 URI 后,nginx 会“重新启动”请求处理过程并触发对location新 URI 的块的新搜索。

last并且break在 nginx 文档中有详细记录:

最后的停止处理当前的 ngx_http_rewrite_module 指令集并开始搜索与改变的 URI 匹配的新位置;

休息停止处理当前的 ngx_http_rewrite_module 指令集,就像 break 指令一样;

last如果重写规则出现在服务器块中,那么和之间似乎没有区别break

相关内容