ПРОЕКТЫ 


  АРХИВ 


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]

Помогите написать location (urlencode)


  • To: nginx-ru@xxxxxxxxx
  • Subject: Помогите написать location (urlencode)
  • From: "valet" <nginx-forum@xxxxxxxx>
  • Date: Fri, 22 Feb 2013 19:54:34 -0500
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tigger.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=/ZnVFLlpAewe5YnuqJLXajuhsb72uUinuSWU9Buj860=; b=I2SzA9BKR8lT1MRAyby1a+s7AYOXjZCjNkhyfR3q1L7Aln0NQZoee86438ovovqnFbqV3zt4Fzzv3hQHuPAMf7IsAJW10tX9HrrkBLNpz6m4D+x0DbDG6cw29FclKuPN;

Здравствуйте.
Стоит nginx + php-fpm.
Никак не могу сообразить как составить правильный location для отправки
запроса на php.

Например входящий запрос
http://site.ru/files/check.php%3Fid%3D2186%26title%3DНазвание+файла надо
превратить в http://site.ru/files/check.php?id=2186&title=Название+файла, то
есть дать понять nginx что вот такой вот запрос с urlencode - это запрос
php-файла с параметрами, чтобы nginx отправил его в нужном формате на
обработчик php-fpm.

То есть как я понимаю надо что-то типа:
location ~ ^/files/check.php%3Fid%3D(?<id>[^%]+)%26title%3D(?<title>.+)$ {

        fastcgi_param SCRIPT_NAME /check.php;
        fastcgi_param PATH_INFO /files/;
        fastcgi_param QUERY_STRING id=$id&title=$title;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  /var/www/site.ru/check.php;
        include fastcgi_params;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;

}

Но у меня таким вариантом location не ловится. Пробовал экранировать - не
помогло. Может как-то можно сделать типа urldecode для url или скажем
написать какой-то rewrite.

Помогите, пожалуйста, разобраться.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,236494,236494#msg-236494

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


 




Copyright © Lexa Software, 1996-2009.