I have two working configurations that, on the surface, seem to do the same thing. They both accomplish the functionality that I need:

    location ~ ^/(css|images|js)/ {
        location ~ '^/(css|js)/[0-9]{8}-(.*)$' {
            alias /$1/$2;
        }
        root /server/path/to/web/root;
    }

**AND**

    location ~ ^/(css|images|js)/ {
        rewrite '^/(css|js)/[0-9]{8}-(.*)$' /$1/$2 break;
        root /server/path/to/web/root;
    }

They both take a URL like `/css/87654321-styles.css` and deliver the file `/css/styles.css`. I lean toward the second solution because it's more succinct, but I don't know if one is better than the other for performance reasons, unintended side-effects, etc.

Here's my original SO post, for reference/context: http://stackoverflow.com/q/27406188/244826

----------

**UPDATE**

After being directed to the [documentation for the Nginx rewrite module][1], I found these interesting lines:

> The ngx_http_rewrite_module module directives are processed in the following order:
>
> - the directives of this module specified on the server level are executed sequentially;
> - repeatedly:
>  - a location is searched based on a request URI;
>  - the directives of this module specified inside the found location are executed sequentially;
>  - the loop is repeated if a request URI was rewritten, but not more than 10 times.

So, if I used the `rewrite` directive without the `break` flag, there could be at least one additional loop of the `server` level directive.


  [1]: http://nginx.org/en/docs/http/ngx_http_rewrite_module.html