Route non-existant .php requests through try_files?

Francis Daly francis at
Fri Jun 15 07:54:46 UTC 2012

On Thu, Jun 14, 2012 at 11:24:12PM -0400, Daniel15 wrote:

Hi there,

> 	location / {

> 	location /assets/cache/ {

> 	location ~ \.php$ {

> However if I go to a non-existent PHP file (like
>, I get a white page that says "File not found."
> There's some legacy links that have ".php" at the end and routing these
> to the correct location is handled in the app itself. Because of my
> try_files setting, I expected this to go through index.php,


One request is handled by one location. The request for /about.php
will be handled by the "php" regex location, which doesn't (currently)
include try_files.

Untested, but probably either:

copy the try_files line into the "php" regex location; or

move the "php" regex location to be within the "location /" block

should do what you want in most cases.

("most" because: what do you want to happen when the request is for
"/assets/cache/absent.php", or for "/assets/cache/present.php"? The two
options above will do different things.)

Good luck with it,

Francis Daly        francis at

More information about the nginx mailing list