FastCGI, $query_string и PHP (Drupal)
Михаил Лапшин
sotakone at sotakone.com
Fri Feb 1 15:40:14 MSK 2008
Добрый день. Есть nginx 0.5.26, под ним через FastCGI бегает PHP (Drupal).
Проблема, наверное, известная, и подобный вопрос не раз задавался, но
решения я так и не нашел.
Вообщем, пользователь вводит в форму поиска строку, например, "пластиковые
окна". Браузер отправляет запрос:
GET /search/node/пластиковые+окна HTTP/1.1
Этот запрос через реврайт преобразуется в следующий:
GET /index.php?q=search/node/пластиковые+окна HTTP/1.1
Однако, FactCGI-серверу query string передается заэскейпенный (%2B вместо
+):
GET /index.php?q=search/node/пластиковые%2Bокна HTTP/1.1
Таким образом, "пластиковые окна" превращаются в "пластиковые+окна".
Вопрос: как получить незаэскейпенную $query_string в конфиге и передать ее
FastCGI? Или как по-другому решить эту проблему?
Куски конфига:
# Реврайтинг
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
break;
}
# PHP
location ~ .php$ {
fastcgi_pass 127.0.0.1:8888;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/xxxxxxxxx$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
}
Михаил.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20080201/465c79e3/attachment.html>
More information about the nginx-ru
mailing list