Difference between #10 and #9 of How to hide index.php on nginx

unchanged
Title
How to hide index.php on nginx
unchanged
Category
Tutorials
unchanged
Tags
changed
Content
In order to use `path` URL format and hide index.php on nginx+fastcgi+php, we
need the following configurations.

First, we need to add PATH_INFO to the server configuration. Otherwise, we will
not be able to use `path` URL format in Yii:

~~~
location ~ \.php {      
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_script_name;
    access_log off;
}
~~~

Second, we need the following rewrite rule to hide `index.php`:

nginx versions .7 and higher:

~~~
location /yiiGuestbook {
    try_files $uri $uri/ /yiiGuestbook/index.php?r=$request_uri;
}
~~~

nginx versions prior to .7:

~~~
location /yiiGuestbook {
    if (!-e $request_filename){
        rewrite (.*) /yiiGuestbook/index.php/$1;
    }
}
~~~

Please refer to [the Guide](http://www.yiiframework.com/doc/guide/topics.url)
for hiding `index.php` on Apache httpd server.

### Links

[Russian version](http://dbhelp.ru/nginx-good-urls/page/)

[Chinese
version](http://dreamneverfall.cn/node/81)version](http://projects.ourplanet.tk/node/81)

FYI, it is good practice to have your 'root' declaration outside of the location
blocks.  Please refer to this article if you are new to nginx:

[nginx-pitfalls] (http://wiki.nginx.org/Pitfalls)