php $path_info,PHP $_SERVER['PATH_INFO'] 无法获取到内容怎么办?

端木野
2023-12-01

前段时间做的一个项目,放在Linux服务器下,出现了伪静态无法使用。

由于我对伪静态的判断,是根据$_SERVER['PATH_INFO'] 来决定的,某些Linux环境,无法获取$_SERVER['PATH_INFO'],所以导致伪静态的解析无法完成。

找了很多资料,终于找到了方法,其实很简单,一句话就可以解决:

//修正$_SERVER['PATH_INFO']无法获取

if ( !isset($_SERVER['PATH_INFO']) && isset($_SERVER['ORIG_PATH_INFO']) ) $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];

扩展知识:$_SERVER['SCRIPT_NAME']、$_SERVER['PHP_SELF']和$_SERVER['ORIG_PATH_INFO'],这三个服务器全局变量都是获取当前脚本名的。主要看服务器当前环境了。那个存在的就获取那个。

所以对于上面的问题,我就是通过isset(),来进行判断的。OK,问题完美解决,是不是很简单呢?

 类似资料: