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

飘逸的风11年前 (2014-12-09)程序11235

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

相关文章

静态类什么情况下使用

黑格尔有句名言:存在即合理。以此为论据的话,静态类的使用必然有其合理性。不过物极必反,一旦代码过于依赖静态类,其劣化的解决则不可避免。这就好比罂粟作为一种草本植物,有其在药理上的价值,但如果肆无忌惮的...

php soap带验证

Server端 <?php class Server { private $authenticated = false;   public function auth($...

用PHP判断一个gif图片是不是动画

01 <?php 02 function IsAnimatedGif($filename) 03 { 04  &...

如何实现PHP的计划(定时)任务和暂停任务

如果在服务器做计划任务是件很简单的事情,但是有的时候收条件限制无法使用服务器自带的计划任务,比如买的空间,这时候想要让网站定时执行某些操作(处理数据、生成静态文件、清除缓存...),该怎么办呢? &...

MemCache安装使用

Windows下的Memcache安装: 1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached 2. 在终端(也即cmd命令界面)下输入 ‘c:\me...

emlog百度分享插件[提供下载]

emlog百度分享插件[提供下载]

emlog百度分享插件下载地址:bdshare.zip 百度分享概况: 引入社会化流量 用户浏览网站内容时产生的分享行为可以增加网站内容在腾讯空间、新浪微博和人人网等社会化网站的曝光机会...

评论列表

飘逸的风
11年前 (2014-12-09)

@王语双:哈哈,一般般啦!

王语双
11年前 (2014-12-09)

楼主技术精湛。

飘逸的风 回复:
@王语双:哈哈,一般般啦!
11年前 (2014-12-09)

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。