fastcgi & index

Maxim Dounin mdounin at
Thu Feb 13 12:34:30 UTC 2014


On Wed, Feb 12, 2014 at 03:23:05PM -0800, Grant wrote:

> I've found that if I don't specify:
> index index.html index.htm index.php;
> in the server blocks where I use fastcgi, I can get a 403 due to the
> forbidden directory index.  I would have thought 'fastcgi_index
> index.php;' would take care of that.  If this is the expected
> behavior, should the index directive be added to the fastcgi wiki?

This is the expected and documented behaviour.

The "fastcgi_index" directive is to instruct a fastcgi backend 
which file to use if a request with an URI ending with "/" is 
passed to the backend.  That is, it makes sense in a configuration 
like this:

    location / {
        fastcgi_pass  localhost:9000;
        fastcgi_index index.php;
        include       fastcgi.conf;

It doesn't make sense in configurations with only *.php file 
passed to fastcgi backends though.  E.g., in a configuration like 
this it doesn't make sense and should be removed:

    location ~ \.php$ {
        fastcgi_pass  localhost:9000;
        # wrong: fastcgi_index doesn't make sense here
        fastcgi_index index.php;
        include       fastcgi.conf;

In this case, normal index processing applies.  It is explained in 
details in an introduction article here:

Maxim Dounin

More information about the nginx mailing list