# Expires + if + break

**URL:** <https://www.ruby-forum.com/t/expires-if-break/118834>\
**Category:** NGINX\
**Created:** [October 31, 2007, 2:59pm UTC](https://www.ruby-forum.com/t/expires-if-break/118834 "2007-10-31T14:59:24Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![san](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba9def/32.png) [@san](https://www.ruby-forum.com/u/san)\
**Post date:** [October 31, 2007, 2:59pm UTC](https://www.ruby-forum.com/t/expires-if-break/118834/1 "2007-10-31T14:59:24Z")

</div>

This results in the Expires header being set correctly:

location / {  
if ($request\_uri ~ ^/images/.\*$) {  
expires max;  
break;  
}  
if (-f $request\_filename) {  
break;  
}  
proxy\_pass [http://mongrel](http://mongrel);  
}

This does not:

location / {  
if ($request\_uri ~ ^/images/.\*$) {  
expires max;  
}  
if (-f $request\_filename) {  
break;  
}  
proxy\_pass [http://mongrel](http://mongrel);  
}

In other words, the “expires” works only if I break within the “if”  
block. Doesn’t Nginx simply execute all “ifs” in order?

$ /usr/sbin/nginx -v  
nginx version: nginx/0.4.13  
built by gcc 4.1.2 20061115 (prerelease) (Debian 4.1.1-20)

Alexander.
