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

valet nginx-forum at nginx.us
Sat Feb 23 00:54:34 UTC 2013


Здравствуйте.
Стоит 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