fastcgi_split_path_info

fastcgi_split_path_info 指令用于将 URI 拆分为两部分,这在向 FastCGI 应用传递特定路径信息时尤其有用。 — NGINX HTTP Core

fastcgi_split_path_info
httpserverlocation
语法fastcgi_split_path_info regex;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

`fastcgi_split_path_info` 指令允许你指定一个正则表达式,用来匹配请求 URI 的一部分并将其分为两个部分:"script" 部分和 "path info" 部分。这对于 FastCGI 应用至关重要,在这些场景中你可能希望将某些 URI 请求路由到特定脚本,同时传递剩余的路径信息进行处理。该指令定义了 URI 的解析方式,使底层应用能够有效地处理请求。 当设置该指令时,服务器会根据指定的模式处理请求 URI,并将 script 与 path info 分别捕获到环境变量 `SCRIPT_NAME` 和 `PATH_INFO` 中。此功能允许开发者创建简洁的 URL,同时仍使脚本能以预期的输入正确运行。作为参数提供的正则(regex)应被慎重构造以充分捕获所需内容,否则不当的模式可能导致意外行为或请求路由错误。 该指令可用于 `http`、`server` 和 `location` 上下文,使其在 NGINX 配置的不同层级都非常灵活。重要的是确保所提供的正则表达式符合 NGINX 使用的语法,并且不会与服务器中已存在的路由冲突。

配置示例

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
}

确保正则表达式正确匹配应用程序所期望的 URI 结构;否则,您可能会丢失路径信息。

如果在不同上下文中定义了多个 `fastcgi_split_path_info` 指令,NGINX 可能会使用在最具体的上下文中定义的规则,从而可能导致混淆。