Nginx 在查询字符串前自动添加尾部斜杠
Nginx automatically add trailing slash before query string
当我连接到:
http://localhost/api?foo=bar
Nginx 将我重定向到:
http://localhost/api/?foo=bar
因此,我的支持没有正确响应。
我试过将位置更改为 location /api
,然后问题就解决了,但它也匹配 http://localhost/apiapi?foo=bar
之类的内容,我不希望这样。
这是我的配置:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:3000;
}
}
您想使用 URI /api
访问您的服务。
location /api/
与 API 不匹配,除非添加额外的 /
(Nginx 通过重定向自动附加)。
location /api
也匹配任何以相同的三个字符开头的 URI。
由于您的服务只需要响应单个 URI,因此您可以使用完全匹配 location
。
例如:
location = /api {
...
}
详情见this document。
当我连接到:
http://localhost/api?foo=bar
Nginx 将我重定向到:
http://localhost/api/?foo=bar
因此,我的支持没有正确响应。
我试过将位置更改为 location /api
,然后问题就解决了,但它也匹配 http://localhost/apiapi?foo=bar
之类的内容,我不希望这样。
这是我的配置:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:3000;
}
}
您想使用 URI /api
访问您的服务。
location /api/
与 API 不匹配,除非添加额外的 /
(Nginx 通过重定向自动附加)。
location /api
也匹配任何以相同的三个字符开头的 URI。
由于您的服务只需要响应单个 URI,因此您可以使用完全匹配 location
。
例如:
location = /api {
...
}
详情见this document。