美文网首页
thinkphp在nginx的pathinfo设置不同时差异

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

作者: X_JX | 来源:发表于2017-10-30 14:20 被阅读79次

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'], '/'));
}

相关文章

网友评论

      本文标题:thinkphp在nginx的pathinfo设置不同时差异

      本文链接:https://www.haomeiwen.com/subject/xjyppxtx.html