Re: "вложенные location'ы - это наше всё"
Igor Sysoev
igor на sysoev.ru
Сб Июл 23 15:07:47 UTC 2011
On Sat, Jul 23, 2011 at 05:38:16PM +0300, Gena Makhomed wrote:
> On 23.07.2011 10:18, Igor Sysoev wrote:
>
> > location /index.php {
> >
> > location = /index.php {
> > fastcgi_pass ...
> > include fastcgi_params;
> > fastcgi_param SCRIPT_FILENAME /path/to/files/index.php;
> > fastcgi_param QUERY_STRING $args;
> > }
> >
> > location ~ ^/index.php(/.*)$ {
> > fastcgi_pass ...
> > include fastcgi_params;
> > fastcgi_param SCRIPT_FILENAME /path/to/files/index.php;
> > fastcgi_param QUERY_STRING do=$1;
> > }
> >
> > return 404;
> > }
>
> учитывая, что "вложенные location'ы - это наше всё" (с) Igor Sysoev
> (полная копия сообщения - http://www.lexa.ru/nginx-ru/msg34286.html)
>
> в связи с этим вопрос: вышеприведенный фрагмент конфига
> наверное можно переписать и более эффективным способом?
>
> location /index.php {
>
> location = /index.php {
> fastcgi_pass ...
> include fastcgi_params;
> fastcgi_param SCRIPT_FILENAME /path/to/files/index.php;
> fastcgi_param QUERY_STRING $args;
> }
>
> fastcgi_pass ...
> include fastcgi_params;
> fastcgi_param SCRIPT_FILENAME /path/to/files/index.php;
> fastcgi_param QUERY_STRING do=$1;
> }
>
> ведь каждый запрос всегда обрабатывается в одном и только в одном
> location`е, и если он уже попал в /index.php - то дальше есть
> всего два варианта - или он точно равен /index.php или нет.
Нет,
location ~ ^/index.php(/.*)$ {
вытаскивает значение для QUERY_STRING.
--
Igor Sysoev
Подробная информация о списке рассылки nginx-ru