gpt4 book ai didi

NGINX $request_uri 与 $uri

转载 作者:行者123 更新时间:2023-12-02 12:04:51 28 4
gpt4 key购买 nike

如何确定何时使用 $request_uri$uri

根据 NGINX 文档,$request_uri 是原始请求(例如,/foo/bar.php?arg=baz 包含参数且无法修改) 但 $uri 指的是更改后的 URI。

如果 URI 没有改变,$uri = $request_uri 吗?

使用起来是不正确、更好还是更差:

map $uri $new_uri {
# do something
}

对比

map $request_uri $new_uri {
# do something
}

最佳答案

$uri 不等于 $request_uri

$uri 变量设置为 nginx 正在当前处理的 URI - 但它也需要标准化,包括:

  • 删除 ? 和查询字符串
  • 连续的 / 字符将替换为单个 /
  • URL 编码字符被解码

$request_uri 的值始终是原始 URI,并且不受上述任何规范化的约束。

大多数时候您会使用$uri,因为它是标准化的。在错误的位置使用 $request_uri 可能会导致 URL 编码字符变成双重编码。

如果需要匹配 URI 及其查询字符串,请在 map 指令中使用 $request_uri

关于NGINX $request_uri 与 $uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48708361/

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