Вопрос по логике нахождения файла для выполнения

Anatoly Matyakh protopartorg at gmail.com
Fri Jul 13 02:10:56 MSD 2007


On Thu, 12 Jul 2007 19:10:49 +0300, Sergey Shepelev <temotor at gmail.com>  
wrote:

> Возможность реализации:
> rewrite ^http://domain/(file)/(param)/ /file;
> set $php_param $2;

Что значит "нормальные" и "по стандарту"?

CGI VARIABLES : PATH_INFO

The extra path information, as given by the client. In other words, scripts
can be accessed by their virtual pathname, followed by extra information at
the end of this path. The extra information is sent as PATH_INFO.
This information should be decoded by the server if it comes from a URL
before it is passed to the CGI script.

Могу нагуглить цитату из собственно стандарта, где это описывается со всеми
регалиями. Указание "пути" после имени скрипта - абсолютно легальная и  
стандартная
практика для CGI. Более того, часто это хорошо позволяет разграничить  
логику
запросов, например:

	http://myhost.tld/engine.php/news/comment/post?id=1234

Здесь скрипт - "engine.php", вызываемый метод (действие, action) -
"/news/comment/post", параметр метода - "id=1234". С нормальным  
диспетчером запросов
писать под такую логику - одно удовольствие.

У вас тут проблема несколько иного рода - поскольку nginx не является  
CGI-сервером,
он и не обязан как-либо пережёвывать CGI-параметры. Соответственно, их  
надо скармливать
бэкенду через описанное location. Выкусывать и передавать, или передавать  
хотя бы так:

	fastcgi_param PATH_INFO $fastcgi_script_name;


-- 
IT Philosopher





More information about the nginx-ru mailing list