redirect之如何删除发布请求nginx的尾部斜线

jillzhang 阅读:27 2025-01-19 22:14:33 评论:0

当我尝试使用 rewrite ^/(.*)/$ /$1 permanent; 重写 URL 时,我正在尝试删除 http post 方法中的尾部斜杠它对我不起作用

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

  • 位置/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; 
    ... 
} 

参见 this document了解更多。


标签:nginx
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号