NGINX $request_uri vs $uri

前端之家收集整理的这篇文章主要介绍了NGINX $request_uri vs $uri前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

猜你在找的Nginx相关文章