ПРОЕКТЫ 


  АРХИВ 


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]

static POST



Прилагаемый патч разрешает POSTы в несуществующие файлы.
Это позволяет использовать POSTы в такой конфигурации:

    location / {
        error_page  404 = @fallback;
    }

    location @fallback {
        ...
    }

Я планирую включить патч в следующую версию.


-- 
Игорь Сысоев
http://sysoev.ru
Index: src/http/modules/ngx_http_static_module.c
===================================================================
--- src/http/modules/ngx_http_static_module.c   (revision 1499)
+++ src/http/modules/ngx_http_static_module.c   (working copy)
@@ -58,7 +58,7 @@
     ngx_open_file_info_t       of;
     ngx_http_core_loc_conf_t  *clcf;
 
-    if (!(r->method & (NGX_HTTP_GET|NGX_HTTP_HEAD))) {
+    if (!(r->method & (NGX_HTTP_GET|NGX_HTTP_HEAD|NGX_HTTP_POST))) {
         return NGX_HTTP_NOT_ALLOWED;
     }
 
@@ -71,10 +71,13 @@
         return NGX_DECLINED;
     }
 
-    rc = ngx_http_discard_request_body(r);
+    if (r->method & (NGX_HTTP_GET|NGX_HTTP_HEAD)) {
 
-    if (rc != NGX_OK) {
-        return rc;
+        rc = ngx_http_discard_request_body(r);
+
+        if (rc != NGX_OK) {
+            return rc;
+        }
     }
 
     log = r->connection->log;
@@ -203,6 +206,10 @@
 
 #endif
 
+    if (r->method & NGX_HTTP_POST) {
+        return NGX_HTTP_NOT_ALLOWED;
+    }
+
     log->action = "sending response to client";
 
     r->headers_out.status = NGX_HTTP_OK;


 




Copyright © Lexa Software, 1996-2009.