你如何确定何时使用$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.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。