Laravel 在 Nginx 后面工作时如何知道请求 uri?

How does Laravel know the request uri when working behind Nginx?

我正在使用 Laravel,但我认为它可以是任何 PHP 框架(例如 Symfony)。

我有以下 Nginx 配置:

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

location = /index.php {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    include fastcgi_params;
}

我提出这个请求,一切正常:

GET /v3/action/1332899709/some-endpoint?page=1

据我了解,nginx 将此请求转换为 /index.php?page=1。那么,为什么会这样呢? Laravel 如何知道我请求了哪些 uri? nginx 是否在“幕后”传递一些请求数据,同时检查 try_files 中的端点?

路由是借助fastcgi_params完成的,例如SCRIPT_FILENAMEREQUEST_URI