ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Пустой массив $_POST



Hello!

On Tue, Dec 21, 2010 at 11:24:10AM +0200, star0x4b@xxxxxxxxx wrote:

> Здравствуйте.
> 
> Есть конфиг сайта, работающего на zend framework. Перенаправление
> несуществующих страниц на index.php осуществлялось с помощью директивы
> error_page 404, но тут появилась проблема - POST-запросы передавались от
> нжинкса в php пустыми. GET-запросы при этом передаются нормально. Если
> же перенаправлять с помощью реврайта - все работает. Но использовать
> реврайты некошерно, поэтому хотелось бы понять, что не так с error_page?

При перенаправлении по error_page в обычный uri - метод запроса 
меняется на GET.  Это сделано для того, чтобы error_page мог 
выполнять свою основную функцию: возвращать страницы ошибок (e.g. 
статический файл /404.html очень удивиться, если в него попытаются 
сделать POST).

Если метод запроса менять не нужно, то надо использовать 
перенаправление в именованный location.  I.e.

    error_page 404 = @fallback;

    location @fallback {
        ...
    }

> Конфиг приведен ниже.
> 
> server {
>         listen      80;
>         server_name  servername.ru;
>         root   /usr/local/www/repos/servername.ru/public;
>         access_log  /var/log/nginx/zfproject_main_access.log;
>         error_log  /var/log/nginx/zfproject_error.log;
> 
>         index    index.php;
> #        error_page 404 = /index.php?$args;
>         rewrite  ^(/.*)$  /index.php last;

Если вас устраивает такой rewrite (т.е. вообще всё отправляется на 
/index.php), то всё это вообще не нужно.  Достаточно сделать так:

    location / {
        fastcgi_pass unix:/tmp/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        ...
    }

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.