Здравствуйте.
Стоит 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.
Помогите, пожалуйста, разобраться.