`
tw198611
  • 浏览: 18596 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

thinkphp3.2.X pathinfo 在lnmp下的终极解决方案

    博客分类:
  • php
阅读更多
最近用了lnmp一键安装包1.2版本,然后搭建的ThinkPHP程序无论如何都不能用pathinfo模式。网上找了很多解决方案,最后发现了问题所在。
1、lnmp一键安装包的php.ini里面cgi.fix_pathinfo=0。而php正常安装的话这个值是默认为1的。如果你用lnmp一键安装包必须要修改成1才行,当然你也可以修改Thinkphp源码。
2、修改你的配置文件,注释掉try_files $uri =404;打开include pathinfo.conf;然后把URL_MODEL=1就能支持pathinfo了。
 location ~ [^/]\.php(/|$)
        {
            # comment try_files $uri =404; to enable pathinfo
            #try_files $uri =404;
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
            include pathinfo.conf;
        }

3.如果你觉得cgi.fix_pathinfo=1不安全可以用REWRITE模式
在虚拟主机root那一行下面加上
if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=$1  last;
   break;
    }

4.导致pathinfo不能用的原因是cgi.fix_pathinfo=0的时候$_SERVER['PHP_SELF']是获取不到index.php的。
而Thinkphp的源码
if(IS_CGI) {
            //CGI/FASTCGI模式下
            $_temp  = explode('.php',$_SERVER['PHP_SELF']);
            define('_PHP_FILE_',    rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/'));
        }else {
            define('_PHP_FILE_',    rtrim($_SERVER['SCRIPT_NAME'],'/'));
        }

由于$_SERVER['PHP_SELF']获取不到index.php所以$_temp是空,导致_PHP_FILE_为.php,U函数生成的地址也是.php这样无法访问的地址。如果你不想修改PHP的配置就只能修改这里的源码。把上面的if里面修改成和else下面一样的就可以了。
分享到:
评论

相关推荐

    ThinkPHP3.2.x RCE漏洞通报1

    【ThinkPHP3.2.x RCE漏洞通报】中提到的安全问题涉及到ThinkPHP 3.2版本的一个严重远程代码执行漏洞。这个漏洞源于框架中的`assign`方法,该方法用于将变量传递给模板进行渲染。当攻击者能够控制`assign`方法的第一...

    thinkphp3.2.x新增图片上传缩略图裁剪类

    调用方式很简单 get_sc($cover_id,[$width=180,$height=auto,$cut]) @param $cover_id 图片ID___ ...可以替换get_cover($cover_id,'path'); get_cover里做了简单的默认图片判断,大家可以自己改一下。

    ThinkPHP_3.2.zip_thinkPHP3.2_thinkphp3.2..3

    《深入理解ThinkPHP3.2框架》 ThinkPHP,作为国内广泛应用的PHP开发框架,以其简洁、高效和易用性赢得了开发者们的喜爱。本篇将详细介绍ThinkPHP3.2版本,该版本在2013年12月31日进行了更新,其环境要求为PHP5.3及...

    ThinkPHP v5.x命令执行利用工具(可getshell)

    在这个场景中,"ThinkPHP v5.x命令执行利用工具(可getshell)"指的是一个专门针对ThinkPHP v5.x版本的安全漏洞进行利用的工具,该工具能够使得攻击者通过命令执行漏洞获取服务器的shell访问权限。 命令执行漏洞...

    帮助文件thinkphp3.2.chm

    thinkphp帮助手册3.2.版非常好用!

    Ueditor for Thinkphp3.2

    **Ueditor for Thinkphp3.2** 是一个集成百度Ueditor编辑器的Thinkphp3.2框架下的插件。这个插件使得在Thinkphp3.2的项目中,开发者能够轻松地引入强大的富文本编辑功能,为用户提供一个美观且功能丰富的在线文本...

    ThinkPHP3.2完全开发手册CHM

    此外,ThinkPHP 3.2的AOP(面向切面编程)支持,允许开发者在不修改原有代码的情况下,添加新的功能或修改现有行为。 总的来说,《ThinkPHP3.2完全开发手册》是一本全面且深入的指南,无论是初学者还是有经验的...

    Thinkphp 5.0.x_5.1.x 变量覆盖 RCE 漏洞分析1

    ### ThinkPHP 5.0.x/5.1.x 变量覆盖远程代码执行(RCE)漏洞分析 #### 漏洞概述 ThinkPHP 5.0.x 和 5.1.x 版本中存在一个变量覆盖导致的远程代码执行(RCE)漏洞。该漏洞利用者可以通过对特定HTTP请求参数的精心...

    thinkphp3.2-API 接口开发分享

    在这个“thinkphp3.2-API 接口开发分享”中,我们将深入探讨如何使用ThinkPHP 3.2框架进行API接口的开发,以及涉及的API验证技术。 首先,ThinkPHP 3.2是一款流行的开源PHP框架,它提供了丰富的MVC(Model-View-...

    ThinkPHP3.2项目源码(包含数据库)

    ThinkPHP3.2是ThinkPHP框架的第三个大版本,它在2.x的基础上进行了大量优化和改进,引入了更多的设计模式和最佳实践。该框架遵循“大道至简”的原则,提供了诸如自动路由、模型绑定、行为扩展、缓存管理等众多功能,...

    thinkphp5.X-Batch-getshell-master.rar

    在ThinkPHP5.x中,可能存在这样的情况:当开发者使用某些特定的函数或方法时,如果没有正确地处理用户输入,就可能导致恶意代码被执行。例如,使用`exec()`、`system()`等函数时,如果用户提交的数据没有被安全地...

    一套基于ThinkPHP3.2开发的后台管理系统cms.rar

    一套基于ThinkPHP3.2开发的后台管理系统cms.rar 。通用管理后台是一个管理后台的基础程序,使用ThinkPHP框架开发,包括管理员的登录;管理员的增加修改删除、权限分配、操作记录基础功能。包括后台功能菜单的新增...

    ThinkPHP3.2自学开发手册

    《ThinkPHP3.2自学开发手册》是一本专注于讲解ThinkPHP3.2版本的编程书籍,旨在帮助开发者快速掌握这一流行的PHP框架。ThinkPHP是中国的一个开源PHP框架,它以其简洁、高效、易学的特点,受到了广大PHP开发者的喜爱...

    达梦DM数据库Thinkphp3.2驱动类Dm.class.php

    达梦DM数据库Thinkphp3.2驱动类Dm.class.php thinkphp3.2的mysql数据库迁达梦数据库 TP3.2+DM数据库改造要用到的达梦数据库驱动类

    ThinkPHP v3.2.X(SQL注入&文件读取)反序列化POP链1

    《ThinkPHP v3.2.X 反序列化漏洞与SQL注入及文件读取利用分析》 ThinkPHP是一款广泛使用的PHP框架,其3.2.*版本存在反序列化漏洞,允许攻击者通过精心构造的数据包触发特定行为,如SQL注入和文件读取。本文将深入...

    驾校在线考试系统 手机+PC+平板 自适应 Thinkphp3.2在线考题源码下载.zip

    同时,ThinkPHP3.2框架内置的错误处理和日志记录功能,有助于及时发现和解决运行中的问题,确保系统的稳定运行。 总结来说,这款驾校在线考试系统是教育信息化的优秀实践,结合了ThinkPHP3.2框架的优势,为驾驶学员...

    thinkphp3.2实现excel导入导出 直接可以用

    在本篇文章中,我们将详细探讨如何在ThinkPHP3.2中实现Excel的导入与导出。 首先,我们要理解Excel导入导出的原理。Excel文件本质上是存储在磁盘上的二进制文件,主要有.XLS和.XLSX两种格式,其中XLSX基于Open XML...

    ThinkPHP3.2入门指引

    ### ThinkPHP3.2入门指引 #### 一、ThinkPHP3.2简介 ThinkPHP3.2是一款基于PHP语言的轻量级Web开发框架,它旨在简化开发过程,提高开发效率,让开发者能够更加专注于业务逻辑而非底层架构。ThinkPHP3.2提供了丰富...

    thinkphp3.2 微信小程序商城源码 带后台

    这是一套完整的解决方案,提供了从前端到后端的全套源码,旨在帮助开发者快速搭建一个微信小程序电商平台。 【ThinkPHP3.2】是ThinkPHP框架的一个早期版本,它是一款基于MVC(Model-View-Controller)模式的PHP开发...

    thinkphp3.2 webuploader较大视频文件分段上传方法demo

    总的来说,ThinkPHP 3.2 结合Webuploader的分段上传方法是解决大文件上传问题的有效方案,它提高了上传的稳定性和效率,同时也提升了用户体验。开发者需要理解分片上传的原理,熟悉ThinkPHP的控制器机制,以及...

Global site tag (gtag.js) - Google Analytics