Добрый день. Есть nginx 0.5.26, под ним через FastCGI бегает PHP (Drupal). Проблема, наверное, известная, и подобный вопрос не раз задавался, но решения я так и не нашел.<br><br>Вообщем, пользователь вводит в форму поиска строку, например, "пластиковые окна". Браузер отправляет запрос:<br>
GET /search/node/пластиковые+окна HTTP/1.1<br><br>Этот запрос через реврайт преобразуется в следующий:<br>GET /index.php?q=search/node/пластиковые+окна HTTP/1.1<br><br>Однако, FactCGI-серверу query string передается заэскейпенный (%2B вместо +):<br>
GET /index.php?q=search/node/пластиковые%2Bокна HTTP/1.1<br><br>Таким образом, "пластиковые окна" превращаются в "пластиковые+окна".<br><br>Вопрос: как получить незаэскейпенную $query_string в конфиге и передать ее FastCGI? Или как по-другому решить эту проблему?<br>
<br>Куски конфига:<br><br># Реврайтинг<br><br> if (!-e $request_filename) {<br> rewrite ^/(.*)$ /index.php?q=$1 last;<br> break;<br> }<br><br># PHP<br> location ~ .php$ {<br> fastcgi_pass <a href="http://127.0.0.1:8888">127.0.0.1:8888</a>;<br>
fastcgi_index index.php;<br><br> fastcgi_param SCRIPT_FILENAME /var/www/xxxxxxxxx$fastcgi_script_name;<br> fastcgi_param QUERY_STRING $query_string;<br> fastcgi_param REQUEST_URI $request_uri;<br>
fastcgi_param REQUEST_METHOD $request_method;<br> fastcgi_param CONTENT_TYPE $content_type;<br> fastcgi_param CONTENT_LENGTH $content_length;<br> fastcgi_param REMOTE_USER $remote_user;<br> fastcgi_param REMOTE_ADDR $remote_addr;<br>
fastcgi_param REMOTE_PORT $remote_port;<br> }<br><br>Михаил.<br>