nginx-0.7.31

cynix cynix at cynix.org
Mon Jan 19 19:47:33 MSK 2009


Igor Sysoev <is at ...> writes:

> 
> Changes with nginx 0.7.31                                        19 Jan 2009
> 
>     *) Change: now the "try_files" directive tests files only and ignores 
>        directories.
> 

This seems to cause problems with index.php inside directories. For example:

 index index.php;
 location / {
  try_files $uri @php;
 }
 location @php {
  fastcgi_pass ...;
  fastcgi_param SCRIPT_FILENAME $document_root/index.php;
 }
 location ~ \.php$ {
  fastcgi_pass ...;
  fastcgi_param SCRIPT_FILENAME $document_root$uri;
 }

With 0.7.30 if you request http://example.com/test/ ,
$document_root/test/index.php is served. However with 0.7.31,
$document_root/index.php is served.

And if you do this:

 try_files $uri $uri/index.php @php;

then nginx will serve index.php as a static file, without passing it to FastCGI.
I know this is the intended behavior, as internal rewrite is only issued for the
last parameter of try_files. So how should we let try_files detect index.php
inside a directory if directories are ignored?






More information about the nginx mailing list