Re: rewrite на подлокации

Igor Sysoev igor на sysoev.ru
Вт Авг 30 09:47:50 UTC 2011


On Tue, Aug 30, 2011 at 07:23:25PM +1100, Victor Kharchenko wrote:
> Поробовал сделать так, ругается на неизвестную переменную id:

Я ошибся: вместо "<?id>" и "<?name>" нужно "?<id>" и "?<name>".

> location /files/ {
> 
>   location ~ ^/files/download/(<?id>[^/]+)/(<?name>.*)\.html$ {
> proxy_set_header  REAL_REMOTE_ADDR  $remote_addr;
> proxy_set_header Host $host;
> proxy_pass_header Set-Cookie;
> proxy_pass http://127.0.0.1:8080/download.php?ID=$id&code=$code;
>   }
> 
>   location ~ ^/files/delete/(<?id>[^/]+)/(<?code>.*)$ {
> proxy_set_header  REAL_REMOTE_ADDR  $remote_addr;
> proxy_set_header Host $host;
> proxy_pass_header Set-Cookie;

set не нужен:

> set $query ID=$id&code=$code;
> proxy_pass http://127.0.0.1:8080/delete.php?ID=$id&code=$code;
>   }
> 
>   return 404;
> }
> 
> 30 августа 2011 г. 16:08 пользователь Igor Sysoev <igor at sysoev.ru> написал:
> 
> > On Tue, Aug 30, 2011 at 11:24:54AM +1100, Victor Kharchenko wrote:
> > > Поставил nginx в качестве фронэнда, перенастраиваю правила редиректа и не
> > > могу разобраться
> > > было так:
> > >
> > > RewriteEngine On
> > > RewriteRule files/download/([^/]+)/(.*).html /download.php?ID=$1&name=$2
> > [L]
> > > RewriteRule files/delete/([^/]+)/(.*) /delete.php?ID=$1&code=$2 [L]
> > > сделал так:
> > >     location /files/ {
> > >         rewrite ^/files/download/([^/]+)/(.*)\.html$
> > > /download.php?ID=$1&name=$2  break;
> > >         rewrite  ^/files/delete/([^/]+)/(.*)$  /delete.php?ID=$1&code=$2
> > > break;
> > >     }
> > > Но не заработало.
> >
> > Вместо "break" поставить "last". А ещё лучше вместо rewrite описать,
> > что нужно делать, например, ходить в FastCGI:
> >
> > locaiton /files/ {
> >
> >   location ~ ^/files/download/(<?ID>[^/]+)/(<?NAME>.*)\.html$ {
> >       fastcgi_pass   ...
> >       fastcgi_param   SCRIPT_FILENAME  /path/to/download.php;
> >       fastcgi_param   QUERY_STRING     ID=$id&name=$name;
> >       ...
> >   }
> >
> >   location ~ ^/files/delete/(<?ID>[^/]+)/(<?NAME>.*)\.html$ {
> >       fastcgi_pass   ...
> >       fastcgi_param   SCRIPT_FILENAME  /path/to/delete.php;
> >       fastcgi_param   QUERY_STRING     ID=$id&name=$name;
> >       ...
> >   }
> >
> >   return 404;
> > }
> >
> >
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru at nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >

> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru


-- 
Igor Sysoev



Подробная информация о списке рассылки nginx-ru