thinkphp在nginx的pathinfo设置不同时差异

thinkphp在Nginx没有pathinfo的情况出现".php"的文件,这个让人很是纠结。在服务器是Linux,web服务器是nginx, CGI接口是FASTCGI,就会出现这个问题。

简单来说,当cgi.fix_pathinfo=0时,PHP_FILE获取的值是.php,导致U函数生成URL不正确,改为1后,PHP_FILE获取的值是index.php。

但是cgi.fix_pathinfo=1时会有安全隐患,目前暂时先把代码改成如下了:

if (IS_CGI) {
    //CGI/FASTCGI模式下
    //$_temp  = explode('.php',$_SERVER['PHP_SELF']);
    //define('_PHP_FILE_', rtrim(str_replace($_SERVER['HTTP_HOST'],'',
    //$_temp[0].'.php'),'/'));
    define('_PHP_FILE_', rtrim($_SERVER['SCRIPT_NAME'], '/'));
} else {
   define('_PHP_FILE_', rtrim($_SERVER['SCRIPT_NAME'], '/'));
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容