Re: $1 в post_action

Igor Sysoev is at rambler-co.ru
Tue May 30 17:01:29 MSD 2006


On Tue, 30 May 2006, drmarker wrote:

> Отлично, работает, большое спасибо.
>
> При этом $token будет жить только внутри конкретно этого реквеста?

Да.

> Я чуть "упростил конфиг" и получилось вот что:
>
> server {
>   listen 80 default;
>
>   server_name distrib;
>
>   location / {
>       if ($uri ~ '^/([[:xdigit:]]{32})/(.+)$') {
>           set $token $1;
>           set $file  $2;
>
>           rewrite ^ /cgi-bin/download-start.pl?to=$token&fi=$file last;
>       }
>   }
>
>   location /cgi-bin/ {
>       proxy_pass http://auth:8008/cgi-bin/;
>       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>   }
>
>   location /files {
>       internal;
>
>       root /srv/movdb;
>
>       post_action /download-stop;
>   }
>
>   location /download-stop {
>       internal;
>
>       rewrite ^ /cgi-bin/download-stop.pl?to=$token&bs=$body_bytes_sent 
> last;
>   }
>
> }
>
> Все правильно с точки зрения политики партии?
>
> В твоем примере стоит `?` после $body_bytes_sent? Typo?

Нет, http://sysoev.ru/nginx/docs/http/ngx_http_rewrite_module.html#rewrite

Если в строке замены указаны аргументы, то предыдущие аргументы запроса
добавляются после них. Можно отказаться от этого добавления, указав в
конце строки замены знак вопроса:

         rewrite  ^/users/(.*)$  /show?user=$1?  last;


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list