Вопрос по логике нахождения файла для выполнения
Driantsov Alexander
bender at cdev.ru
Mon Jul 16 10:26:49 MSD 2007
On Sun, 15 Jul 2007 00:11:09 +0400
Igor Sysoev <is at rambler-co.ru> wrote:
> On Thu, Jul 12, 2007 at 07:01:18PM +0400, Driantsov Alexander wrote:
>
> > Интересует следующая функциональность и возможность ее реализации:
> >
> > Логика апача:
> > запрашиваемая URL'а:
> >
> > http://domain/file/param/
> >
> > Например:
> >
> > http://domain/c/abc-def-ghi/
> >
> > Апач находит файл "c", смотрит в .htaccess, а там указано:
> >
> > <Files c>
> > ForceType application/x-httpd-php
> > </Files>
> >
> > Апач обрабатывает файл "c" как PHP.
> >
> > Логика Nginx'а:
> >
> > запрашиваемая URL'а:
> >
> > http://domain/file/param/
> >
> > Например:
> >
> > http://domain/c/abc-def-ghi/
> >
> > Nginx не находит директории и выдает ошибку:
> >
> > 2007/07/12 09:49:58 [error] 15109#0: *1 "/var/www/nginx/domain.com/c/abc-def-ghi/index.php" is not found (20: Not a directory)
> >
> > Как заставить это дело обрабатываться скриптом "c" а не читать директорию?
>
> Общего решения нет, для контретно этого случая можно использовать такое:
>
> location /c {
>
> set $path_info "";
> if ($uri ~ ^/c(.+)) {
> set $path_info $1;
> }
>
> fastcgi_pass ...
>
> fastcgi_param SCRIPT_FILENAME /path/to/c;
> fastcgi_param PATH_INFO $path_info;
> }
>
Спасибо за помощь. В конце-концов рабочим для меня оказался следующий конфиг:
location /c {
fastcgi_pass 127.0.0.1:8888;
fastcgi_param SCRIPT_FILENAME /var/www/nginx/domain/c;
fastcgi_param PATH_INFO $uri;
include conf/php.conf;
}
--
Sincerely yours,
Driantsov Alexander,
Technical Support Engineer
Qualiteam Software
Glavpochtamt, p/o box 5152. [web site] http://www.x-cart.com/
432072 Ulyanovsk, Russia [ phone ] +7-(8422)-429037 (9:00-18:00 GMT +4)
More information about the nginx-ru
mailing list