zhangning 发表于 2018-5-24 12:25:48

lnmp1.5 安装后放thinkphp 3.2的项目后隐藏了域名URL后的index留下了.php导致无法正常访问

打开域名可以正常访问,但是跳转其它模块后,地址中的index.php被去掉的index只留下了.php导致不能正常访问

licess 发表于 2018-5-24 13:02:30

这个应该是程序上的问题,你可以自己看看源代码,源代码上输出的url就是不带index的
解决方法1: 修改php.ini 将里面的 cgi.fix_pathinfo=0 改成 cgi.fix_pathinfo=1 但会造成有安全问题
解决方法2:修改thinkphp 3的代码,编辑ThinkPHP/ThinkPHP.php 查找 if(IS_CGI)
将原来的
if(IS_CGI) {
            //CGI/FASTCGI模式下
            $_temp= explode('.php',$_SERVER['PHP_SELF']);
            define('_PHP_FILE_',    rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp.'.php'),'/'));
      }else {
            define('_PHP_FILE_',    rtrim($_SERVER['SCRIPT_NAME'],'/'));
      }

替换为
if(IS_CGI) {
            //CGI/FASTCGI模式下
            //$_temp= explode('.php',$_SERVER['PHP_SELF']);
            //define('_PHP_FILE_',    rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp.'.php'),'/'));
            define('_PHP_FILE_', rtrim($_SERVER['SCRIPT_NAME'], '/'));
      }else {
            define('_PHP_FILE_',    rtrim($_SERVER['SCRIPT_NAME'],'/'));
      }

就可以了

shwanyu 发表于 2018-8-20 10:34:44

非常感谢! 我试试。

非常感谢军哥! 我试试。
页: [1]
查看完整版本: lnmp1.5 安装后放thinkphp 3.2的项目后隐藏了域名URL后的index留下了.php导致无法正常访问