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_FILENAME
、REQUEST_URI
等
我正在使用 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_FILENAME
、REQUEST_URI
等