Home > OS >  NGINX : DELETE method not allowed
NGINX : DELETE method not allowed

Time:04-15

I am using Nginx to serve static pages but to pass requests to an API, which I would like to handle GET, and DELETE requests.

GET work fine, but DELETE request is rejected with "405: Method Not Allowed"

server {
    listen 80;
    server_name test.com;
    root /var/test/cache/;
    index index.php;

    add_header 'Access-Control-Allow-Methods' 'GET, DELETE';
    add_header 'Access-Control-Allow-Headers' 'Content-Type, Origin';
    add_header 'Access-Control-Allow-Origin' '*';


    location ~* /questions {
      ...
      
      try_files $url /index.php;
    }

}     

Any suggestion will be helpful, thanks.

CodePudding user response:

Solution :

fix an issue on fastcgi_params file, and improve the location rule entry :

server {
    listen 80;
    server_name test.com;
    root /var/test/cache/;
    index index.php;

    location ~* /questions {
      
      set_by_lua_block $url_format {
        request_type = ngx.var.request_method
        
        if request_type == 'DELETE' then
           ...
           return url_format;
        end
        
        ...
      }
      
      try_files $url_format /index.php;
    }

} 
  • Related