Setting expires header results in 404 ?

Maxim Dounin mdounin at
Sat Apr 3 02:58:48 MSD 2010


On Fri, Apr 02, 2010 at 06:45:25PM -0400, RoastedPeanut wrote:

> location ~* \.(ico|css|js|gif|jpg|png)$ {
> 			expires 7d;
> 		}
> If I add this to my server conf it will cause all those requests 
> to fail with a 404..I'm feeling silly for missing this, and I 
> know it's probably very easy to fix...but how? :)

Most likely you have something like this:

    root /path/to/nowhere;

    location / {
        root /path/to/root;


    location ~* \.(ico|css|js|gif|jpg|png)$ {
        expires 7d;

results in these files being searched in nowhere.   The reason is 
simple: nginx uses configuration in "location ~* \.(...)$" which 
has no root explicitly set, and therefore root is inherited from 
server/http level (or compiled-in default).

Maxim Dounin

More information about the nginx mailing list