Is it possible in nginx to have a location {...} block that matches query parameters. For example I want to pick up that preview=true in URL below and then instruct it to do several different things, all possible in a location block.

The problem I'm having is that my test stuff doesn't seem to match, it seems like I can only match the URL itself?


location ~ ^(.*)(preview)(.*)$

Or something aloong those lines?

  • What are you trying to do? Oct 12, 2012 at 13:07
  • To match preview=true in the url in order to disable caching in the location (as location / caches)
    – Dave
    Oct 12, 2012 at 20:02

1 Answer 1


Use the proxy_cache_bypass directive.

proxy_cache_bypass $arg_preview;
  • This is correct; thanks Michael. Unfortunately it's not possible to match arguments in a location {} block though
    – Dave
    Oct 13, 2012 at 10:27
  • You shouldn't be using a separate location block at all. If this doesn't work with your existing directives, you've probably found a bug in nginx. Oct 13, 2012 at 12:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.