项目中使用了thinkphp做为开发框架,url上使用了pathinfo模式,但是nginx默认是不支持pathinfo的,需要进行手动配置。
按照了以下方法进行了nginx的pathinfo支持配置:
修改nginx.conf,找到server中的 location ~ .php${},修改为location ~ .php {},并在其中增加:
不过无论如何测试,都发现pathinfo模式总是不能正确运行,就算运行后,{:u}方法也总是出错,打印$_server后发现php_self总是不对。
但是依然pathinfo不能正确正常工作,于是确定是thinkphp的配置问题,发现其实是thinkphp的_php_file的问题。
在入口文件index.php中加入配置:
define('_php_file_',$_server['script_name']);,问题解决。
如果$_server['script_name'] 路径也不对,请先替换为正确的文件路径。