Question about nested locations / PHP.

Adrian Hayter adrianhayter at
Fri Mar 9 22:12:45 UTC 2012

Not sure if this is the right place to post this; apologies in advance if it is!

I'm having a bit of trouble with nested locations and PHP. I have a setup where I want all PHP files to go through fastcgi, and have an expiry of epoch. However, one particular PHP file is used to generate CSS stylesheets, and I want this file to have an expiry of 30 days. My current code looks like this:

location ~ \.php$
	location ~ /css.php
		expires 30d;
		add_header Pragma public;
		add_header Cache-Control "public";

	expires epoch

	// Fastcgi stuff...

I've tried various combinations (having the nested location at the end, etc) but all that happens is the css.php file doesn't get sent through the fastcgi process, and the raw PHP code is sent to the client. I've messed up somewhere, and I'm new to nginx (just migrated from Apache) so if someone could point out my error / give a quick explanation of how nested locations work, it would be ideal!

Thanks in advance!


More information about the nginx mailing list