I’m trying to undestand the break; statement in combination with
add_header
combo, on the wiki it says the following:
“Completes the current set of rules. Continue processing within the
current
location block but do not process any more rewrite directives.”
I read this as everything that has todo with the HttpRewriteModule will
not
be processed any more after this statement. I have the following piece
of
config for a rails app:
# Some browsers still send conditional-GET requests if there's a
# Last-Modified header or an ETag header even if they haven't
# reached the expiry date sent in the Expires header.
add_header Last-Modified "";
add_header ETag "";
break;
Now the add_header stuff for webfonts is never set, and I do not
understand
why break has a part in this. When I remove break; it works,
when i put the font location stuff before location ~^/assets/ it also
works.
On Thu, May 02, 2013 at 11:53:12AM -0400, flarik wrote:
Hi there,
location ~ ^/assets/ {
location ~* .(ttf|ttc|otf|eot|woff)$ {
Now the add_header stuff for webfonts is never set, and I do not understand
why break has a part in this. When I remove break; it works,
when i put the font location stuff before location ~^/assets/ it also
works.
What request do you make? What response do you get? What response do
you expect?
In nginx, one request is handled in one location. So I expect that no
more
than one set of add_header directives will apply. And as you only show
regex locations, if the first one matches then it is the one that is
used.
In nginx, one request is handled in one location. So I expect that no
more
than one set of add_header directives will apply. And as you only show
regex locations, if the first one matches then it is the one that is
used.
Ah, that makes sense, thanks!
Regards,
Frodo
Posted at Nginx Forum:
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.