如何在post请求nginx上删除结尾的斜线

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

如果Http POST以这种格式进入,则上游应该以这种格式接收/x/y

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

这是nginxconfiguration

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

请参阅此文档了解更多