ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



Поробовал сделать так, ругается на неизвестную переменную id:

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 $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@xxxxxxxxx> написал:
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@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.