Re[2]: проблемы с post-запросами в error_page

Arkadiy Kulev eth at ethaniel.com
Mon Feb 2 08:58:47 MSK 2009


Игорь,

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

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 at ethaniel.com
+7 495 5070602
Moscow, Russia






More information about the nginx-ru mailing list