Nginx 中 try_files 指令的不同配置有何区别?

nginx 中 try_files 指令的不同配置有何区别?

nginx 中 try_files 指令的不同配置

在 nginx 配置文件中,try_files 指令用于指定当客户端请求的文件不存在时服务器的行为。此指令可以有多个参数,每个参数代表一个尝试的文件路径。当 try_files 中列出的所有文件均不存在时,服务器将返回 404 错误。

以下是一组 try_files 配置,以及它们之间的区别

try_files $uri $uri/ /index.php$args;

此配置将尝试以下文件:

请求的 URI(例如 /hello/world)请求的 URI 加上尾部斜杠(例如 /hello/world/)index.php 以及原始请求 URI 中的参数(例如 /index.php?foo=bar&big=foot)

try_files $uri $uri/ /index.php?/$uri;

此配置与前一个配置类似,但它将请求 URI 添加到 index.php 后面的查询字符串中,而不是作为参数传递。这意味着 $_GET 数组将为空,而 $_SERVER[‘REQUEST_URI’] 将包含请求的完整 URI。

try_files $uri $uri/ /index.php?$query_string;

此配置将查询字符串添加到 index.php 后面,而不是将参数传递给脚本。这意味着 $_GET 数组将为空,而 $_SERVER[‘QUERY_STRING’] 将包含查询字符串。

try_files $uri $uri/ /index.php?$args;

此配置将原始请求 URI 中的参数传递给 index.php 脚本。这意味着 $_GET 数组将包含请求中的参数,而 $_SERVER[‘QUERY_STRING’] 将为空。

try_files $uri /index.php$is_args$args;

此配置将请求 URI 与 index.php 拼接,并添加原始请求 URI 中的任何参数。$_GET 数组将包含参数,而 $_SERVER[‘REQUEST_URI’] 将包含请求的完整 URI。

变量 $uri、$args 和 $query_string

在 nginx 配置中,$uri、$args 和 $query_string 是内置变量,用于表示请求的不同方面:

$uri:请求的 URI,不包括查询字符串。$args:请求的查询字符串参数,不包括问号 (?)。$query_string:完整的查询字符串,包括问号 (?)。

以上就是Nginx 中 try_files 指令的不同配置有何区别?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1248824.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 20:49:50
下一篇 2025年12月9日 20:50:03

相关推荐

发表回复

登录后才能评论
关注微信