understanding break and add_header combo

flarik nginx-forum at nginx.us
Thu May 2 15:53:12 UTC 2013


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:

server {

  listen   80;

  server_name x;

  root /var/www/vhost/x/current/public;
  passenger_enabled on;

  location ~ ^/assets/ {
    expires 1y;
    add_header Cache-Control public;

    # 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 "";

  # Webfonts (they are in /assets)
  location ~* \.(ttf|ttc|otf|eot|woff)$ {
    add_header Access-Control-Allow-Methods GET,OPTIONS;
    add_header Access-Control-Allow-Headers *;
    add_header Access-Control-Allow-Origin *;


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

Hope someone can shine some light on this.

Kind Regards,

Frodo Larik

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,238797,238797#msg-238797

More information about the nginx mailing list