Массив $_POST приходит пустой

Igor Sysoev is at rambler-co.ru
Fri Dec 19 10:17:06 MSK 2008


On Fri, Dec 19, 2008 at 01:48:03AM +0200, Alexander wrote:

> Я пытаюсь нормально настроить nginx+php+fastCGI для запуска скрипта Magento
> Урлы в magento выглядят следующим образом
> 
> index.php/controller/action/etc
> соответственно "чистые ссылки" должны выглядеть
> /controller/action/etc
> 
> все вроде заработало, кроме одной вещи: при попытке логина (урл 
> вида /admin/.....) перебрасывает снова на страницу ввода пароля. Оказывается, 
> массив $_POST по какой-то причине до php не доходит.
> 
> вот что у меня в файле конфига:

> 	location @magento {
> 	    include /etc/nginx/fastcgi_params;
> 	    fastcgi_param  
> SCRIPT_FILENAME    /home/alex/public_html/server.com/index.php;
> 	    rewrite /js/index.php/x.js(.*) /js/index.php last;
> 	    rewrite (.*) /index.php last;
> 	}
> 	location @js {
> 	    include /etc/nginx/fastcgi_params;
> 	    fastcgi_param  
> SCRIPT_FILENAME    /home/alex/public_html/server.com/index.php;
> 	    rewrite x.js(.*) /js/index.php last;
> 	}
> 	
> 	location = /js/index.php/x.js {
> 	    error_page 404 = @js;
> 	}
> 	
> 	location / {
>             error_page 404 = @magento;
> 	}

Во-первых, нужно выбросить rewrite-ересь из головы.
Во-вторых, похоже, в "location @magento" нет fastcgi_pass.
В-третих, точный /js/index.php/x.js не нужно перенаправлять, его нужно
сразу обрабатывать. Только что с ним нужно делать, я не понял.

Всё вышеприведённое нужно заменить на

       location / {
           error_page 404 = @magento;
       }

       location @magento {
           fastcgi_pass   ...
 	   fastcgi_param  SCRIPT_FILENAME  /home/alex/public_html/server.com/index.php;
 	   include /etc/nginx/fastcgi_params;
       }


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list