Trying to add expires on proxied content make images and css/js redirect

So, I have this config here:

    location /thelocation {
      if ($request_uri ~* “.(ico|css|js|gif|jpe?g|png)$”) {
        expires 15d;
      proxy_set_header Host xxxxxxxxr;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass http://localhost:8080/thelocation;


The thing is, I am getting redirects on images and css, some example
pieces of the headers:

I send
GET /thelocation/wp-content/plugins/contact-form-7/stylesheet.css

and I get:
HTTP/1.x 301 Moved Permanently


As you can notice, it redirects to my location twice and with a / on the
If I remove the “if” part of the server location configuration,
everything works ok. This location is served by a wordpress that is
behind varnish. I also have gzip enabled on nginx.

Any help is welcome.

You need to use either:

location /thelocation {
proxy_pass http://localhost:8080;

or if for some reason that’s not possible, then:

location /thelocation/(.*) {
proxy_pass http://localhost:8080/$1;

Best regards,
Piotr S. < [email protected] >