[PHP] fastcgi_split_path_info与传递PATH_INFO

前端之家收集整理的这篇文章主要介绍了[PHP] fastcgi_split_path_info与传递PATH_INFO前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

PHP的很多框架里面都是通过获取$_SERVER['PATH_INFO']处理路由,这个变量是通过Nginx传递过来的,我们在Nginx中经常见到下面两句

fastcgi_split_path_info ^(.+\.PHP)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;

这两句是什么意思呢?

Nginx默认获取不到PATH_INFO的值,得通过fastcgi_split_path_info指定定义的正则表达式来获取

^(.+\.PHP)(/.*)$; 这个正则表达是有两个小括号,也就是有两个捕获

第二个捕获到的值会自动重新赋值给$fastcgi_path_info变量。

第一个捕获的值会重新赋值给$fastcgi_script_name变量。

 

如果访问 /index.PHP/test,第二个捕获的是/test $fastcgi_path_info就是/test,因此就会把/test传递给PHP的$_SERVER['PATH_INFO']

 

猜你在找的PHP相关文章