I don't understand the difference between break and last (flags of rewrite). The documentation is rather abstruse. I've tried to switch between the two in some of my configs, but I couldn't spot any difference in behavior. Can someone please explain these flags in more detail? Preferably with an example that shows different behavior when flipping one flag to another.
Nginx url rewriting: difference between break and last
nginxrewrite
Best Answer
You may have different sets of rewrite rules for different locations. When rewrite module meets
last
, it stops processing the current set and the rewritten request is passed once again to find the appropriate location (and the new set of rewriting rules). If the rule ends withbreak
, the rewriting also stops, but the rewritten request is not passed to another location.That is, if there are two locations: loc1 and loc2, and there's a rewriting rule in loc1 that changes loc1 to loc2 AND ends with
last
, the request will be rewritten and passed to location loc2. If the rule ends withbreak
, it will belong to location loc1.