加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

NGINX $request_uri vs $uri

发布时间:2020-12-13 21:06:20 所属栏目:Nginx 来源:网络整理
导读:你如何确定何时使用$request_uri vs $uri? 根据NGINX文档,$request_uri是原始请求(例如,/ foo / bar.php?arg = baz包含参数,不能修改),但$uri指的是更改的URI. 如果URI没有改变,$uri = $request_uri? 使用时是不正确的,更好的还是更糟的: map $uri $new_

你如何确定何时使用$request_uri vs $uri?

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

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

使用时是不正确的,更好的还是更糟的:

map $uri $new_uri {
  # do something
}

VS

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读