gpt4 book ai didi

nginx - 现有 Nginx 重写规则的表单 url

转载 作者:行者123 更新时间:2023-12-04 03:39:37 24 4
gpt4 key购买 nike

我有问题要问 Nginx 专家。 Nginx 上就有这样的规则。
如果我使用 header “main”请求,它会将/ismain 添加到 url:

if ($http_main) {
rewrite ^(.*)$ /ismain/$1;
}
接下来它从 url 剪切/ismain/并转到 Host
location /ismain/ {
rewrite ^/ismain/(.*)$ $1 break;
proxy_pass http://Host:9999;
}
它运作良好,由于公司的安全政策,我无法更改它。
但是现在我需要做回调并且不允许使用标题。
所以我以这种方式请求(没有标题):
http://11.11.117.111:8077/ismain/someaddress
但是 Nginx 在端口之后切断了所有斜杠......并响应 400 Bad URI。
在日志中,我可以在剪切后看到这样的 url:
http://11.11.117.111:8077someaddress
我尝试用双斜线请求:
http://11.11.117.111:8077//ismain/someaddress
http://11.11.117.111:8077/ismain//someaddress
但它不起作用。我也有同样的 react 。我很沮丧为什么我使用标题,但不想要我形成的路径。我想是一样的。
也许我需要用一些符号来屏蔽斜线?你能给我建议吗?

最佳答案

所有 Nginx URI 都包含一个前导 / .
您的第一个 rewrite语句添加了双 // .你应该使用:

rewrite ^(.*)$ /ismain$1;
或者:
rewrite ^/(.*)$ /ismain/$1;
您的第二个 rewrite语句依赖于第一个错误。你应该使用:
rewrite ^/ismain(/.*)$ $1 break;
或者:
rewrite ^/ismain/(.*)$ /$1 break;

关于nginx - 现有 Nginx 重写规则的表单 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66290490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com