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

Andrey Repin hell-for-yahoo at umail.ru
Sat Feb 23 01:11:32 UTC 2013


Здравствуйте, Уважаемый(-ая, -ое) valet!

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

v> Например входящий запрос
v> http://site.ru/files/check.php%3Fid%3D2186%26title%3DНазвание+файла

C какого бодуна у вас вообще такие запросы появляются?...

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

На сколько я помню документацию, запрос перед обработкой раскодируется.
А при передаче дальше, по необходимости, кодируется.
Но в вашем случае я бы начал с того, что включил отладочный лог и посмотрел,
что реально приходит на сервер. Ибо бред.

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

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

v> }

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

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

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

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


-- 
С уважением

    Andrey Repin (hell-for-yahoo at umail.ru) суббота, 23.02.2013, <05:09>


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