如何删除post请求nginx的尾斜杠



我试图删除http post方法上的尾斜杠,当我尝试使用rewrite ^/(.*)/$ /$1 permanent;重写URL时,它不适合我

如果Http POST以这些格式来,上游应该以这种格式接收/x/y

  • 位置/x/y/= =>位置/x/y
  • 位置/x/y = =>位置/x/y

nginx的配置

  upstream backend {
            server 127.0.0.1:8778;
            # Number of idle keepalive connections per worker process.
            keepalive 35;
    }

    location /x/y  {        
                    limit_except POST {
                            deny all;
                    }
                    proxy_pass  http://backend;
                    proxy_buffering on;
                    include proxy.conf;
            }

这里的问题是,当上游看到URI是在这种格式/x/y/它拒绝了请求,应该是什么正确的重写规则,这样,如果http post的格式像/x/y/x/y/的上游应该总是看到/x/y

permanent将导致rewrite生成带有301响应的重定向。您需要的是在将URI发送到上游之前对其进行内部调整:

location /x/y {
    rewrite ^/(.*)/$ /$1 break;
    ...
}

最新更新