前段时间做的一个项目,放在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,问题完美解决,是不是很简单呢?