subdirs without trailing slash

Igor Sysoev is at rambler-co.ru
Sun Jul 19 15:04:29 MSD 2009


On Sat, Jul 18, 2009 at 11:33:14PM +0100, Dick Middleton wrote:

> I want to make the following equivalent:
> 
>      http://example.com/mail/index.php
>      http://example.com/mail/
>      http://example.com/mail
> 
> The first two work OK but the last one I can't get to work.  With the 
> following it gives 404 error in the logs but the browser says "No input 
> file specified." :
> 
>   location ~* ^/(web)?mail/.+\.(jpg|jpeg|gif|css|png|js|ico|html)$ {
>     root  /var/www;
>   }
> 
>   location ~ ^/(web)?mail {
>     root  /var/www;
>     index index.php;
>     fastcgi_index index.php;
>     include my_fastcgi_params;
>     fastcgi_pass localhost:8888;
>   }
> 
> I've tried all sorts of variations of this including trying to rewrite the 
> full uri in the last case.
> 
> The my_fastcgi_params include
> 
> fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
> fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
> 
> What is the recommended way to configure this?

If you set

   location /mail/ {
       fastcgi_pass localhost:8888;
       ...
   }

and request "/mail" then nginx will return external redirect to "/mail/".

If you do not want the redirect, then

   location = /mail {
       fastcgi_pass   localhost:8888;
       fastcgi_param  SCRIPT_FILENAME    $document_root/index.php;
       fastcgi_param  SCRIPT_NAME        /index.php;
       root           /var/www;
   }

   location /mail/ {
       fastcgi_pass   localhost:8888;
       fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
       fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
       fastcgi_index  index.php;
       root           /var/www;
   }


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





More information about the nginx mailing list