ПРОЕКТЫ 


  АРХИВ 


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[2]: проблемы с post-запросами в error_page



Игорь,

насколько быстрее такая конструкция?

server {
        listen 80;
        server_name BBB.ru;
        root /home/BBB;


        location / {
                index  index.php;
                autoindex off;

                if (!-e $request_filename) {
                        rewrite ^/(.*) /404.php?$query_string;
                }

        }

        location ~* ^.+\.(php)$ {
                include /home/storage/node/conf/freebsd/nginx/fastcgi.conf;
        }
}


Sunday, February 1, 2009, 11:47:04 PM, you wrote:

> 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;
>     }





Arkadiy Kulev                         mailto:eth@xxxxxxxxxxxx
+7 495 5070602
Moscow, Russia




 




Copyright © Lexa Software, 1996-2009.