try_files in subdirectory

Igor Sysoev is at rambler-co.ru
Wed May 20 13:15:48 MSD 2009


On Sun, May 17, 2009 at 11:05:23PM +0100, Mathew Davies wrote:

> Hi,
> I am using try_files in a subdirectory and I'm coming up with some issues.
> 
> # default
> 
> server
> 
> {
> 
> server_name localhost;
> 
>  location ~ \.php$
> 
> {
> 
> try_files $uri $uri/;

Here "$uri/" is fallback parameter. However, this is not cause of the problem.

> fastcgi_pass 127.0.0.1:9000;
> 
> include fastcgi_params;
> 
> }
> 
>  location /devkit/
> 
> {
> 
> try_files $uri $uri/ @kohana;
> 
> }
> 
> 
> > location @kohana
> 
> {
> 
> fastcgi_pass 127.0.0.1:9000;
> 
> include fastcgi_params;
> 
> fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/devkit/index.php;
> 
> }
> 
> }
> 
> 
> This URL works correctly,
> 
> http://www.domain.com/devkit/index.php/coaster/17/olympia-looping
> 
> 
> but when I remove the index.php file I get :
> 
> The page you requested devkit/coaster/17/olympia-looping could not be found.
> 
> but it should be coaster/17/olympia-looping instead.

You need something like this:

location /devkit {
    try_files $uri $uri/ @kohana;
}
 
location @kohana {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_split_path_info         ^(/devkit)(/.*)$;
    fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/devkit/index.php;
    fastcgi_param  PATH_INFO        $fastcgi_path_info;
}


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list