ПРОЕКТЫ 


  АРХИВ 


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-за просами в error_page



On Sun, Feb 01, 2009 at 06:29:18PM +0300, Arkadiy Kulev wrote:

> Hello Nginx-ru,
> 
> У меня следующий проблема - все адреса на моем сайте обрабатываются
> через error_page (ну чтобы в конфиге много rewrite не писать, я
> обрабатываю их через php).
> 
> Сегодня я решил перейти на nginx и обнаружил следующую странность -
> POST запросы не передаются в скрипт, указанный в error_page.
> 
> Если же я обращаюсь к скрипту напрямую, то все впорядке. Если же на
> другой адрес (который впоследствии через error_page выходит на
> скрипт), то POST запрос пропадает.
> 
> nginx 0.6.35, конфиг внизу. В чем может быть проблема?
> 
> 
> server {
>         listen 888;
>         server_name *.BBBBBB.ru;
>         root /home/BBBBBB;
> 
>         error_page 404 = /404.php?$query_string;
> 
>         location / {
>                 index  index.php;
>                 autoindex off;
>                 rewrite ^/$ /404.php?$query_string;
>         }
> 
>         location ~* ^.+\.(php)$ {
>                 include /home/storage/node/conf/freebsd/nginx/fastcgi.conf;
>         }
> 
> }

error_page превращает GET в POST. Нужно что-то вроде этого (из
/home/storage/node/conf/freebsd/nginx/fastcgi.conf нужно убрать
SCRIPT_FILENAME):

    root /home/BBBBBB;

    location / {
        index  index.php;
        error_page  404 = @404;

        # default
        #autoindex off;
    }

    location ~* \.php$ {
        fastcgi_param  SCRIPT_FILENAME  $document_root$uri;
        include /home/storage/node/conf/freebsd/nginx/fastcgi.conf;
    }

    location = / {
        fastcgi_param  SCRIPT_FILENAME  $document_root/404.php;
        include /home/storage/node/conf/freebsd/nginx/fastcgi.conf;
    }

    location @404 {
        fastcgi_param  SCRIPT_FILENAME  $document_root/404.php;
        include /home/storage/node/conf/freebsd/nginx/fastcgi.conf;
    }


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



 




Copyright © Lexa Software, 1996-2009.