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