遇到的问题是:在thinkphp5.0框架下,出现错误----模块不存在:404?

问题跟踪分析:

不管是打断点还是var_dump,都可以分析到 Request.php 下的函数

/**

* 获取当前请求URL的pathinfo信息(含URL后缀)

* @access public

* @return string*/

public function pathinfo()

{if (is_null($this->pathinfo)) {if (isset($_GET[Config::get('var_pathinfo')])) {//判断URL里面是否有兼容模式参数

$_SERVER['PATH_INFO'] = $_GET[Config::get('var_pathinfo')];unset($_GET[Config::get('var_pathinfo')]);

}elseif(IS_CLI) {//CLI模式下 index.php module/controller/action/params/...

$_SERVER['PATH_INFO'] = isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : '';

}//var_dump($_SERVER);exit();

// 分析PATHINFO信息

if (!isset($_SERVER['PATH_INFO'])) {foreach (Config::get('pathinfo_fetch') as $type) {if (!empty($_SERVER[$type])) {$_SERVER['PATH_INFO'] = (0 === strpos($_SERVER[$type], $_SERVER['SCRIPT_NAME'])) ?

substr($_SERVER[$type], strlen($_SERVER['SCRIPT_NAME'])) : $_SERVER[$type];break;

}

}

}$this->pathinfo = empty($_SERVER['PATH_INFO']) ? '/' : ltrim($_SERVER['PATH_INFO'], '/');

}return $this->pathinfo;

}

在 "分析PATHINFO信息" 中看到 断点输出 超全局变量 $_SERVER

从代码逻辑上来分析,pathinfo的取值 是从 超全局变量中$_SERVER  以这些 ['ORIG_PATH_INFO', 'REDIRECT_PATH_INFO', 'REDIRECT_URL'](从Config配置里获取)为key的值中获取,一旦获得值,终止,从上图可以看出,REQUEST_URI为key的值符合我们的逻辑,故有的解决方法是在配置的数组里加上REQUEST_URI,放在第一位,我最初也是这样来解决这个问题的。

在设置好后,确实页面可以访问了,

但是返回的状态码竟然是404.

看来问题还是得回到超全局变量 $_SERVER 来,为什么他的这些参数['ORIG_PATH_INFO', 'REDIRECT_PATH_INFO', 'REDIRECT_URL']是 404,延伸到 超全局变量 $_SERVER 是怎么来的?

超全局变量 $_SERVER 是怎么来的 这个问题,我也不是很了解,只是在网上了解到和Apach或者Nginx有关(看你的服务部署情况),我的是Apach。

thinkphp和Apache的配置相关的话,就是public下的.htaccess文件

Options +FollowSymlinks -Multiviews

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^(Public/)]+.*)$ index\.php [L,E=PATH_INFO:$1]

和thinkphp官方的对比下,

https://www.kancloud.cn/manual/thinkphp5/177576

RewriteRule ^([^(Public/)]+.*)$ index\.php [L,E=PATH_INFO:$1]

就是这个的问题,改为

RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

这个问题就从根本上解决了!!其他的不用去改变。。。

php sql判断l列的存在,thinkphp 模块不存在:404相关推荐

  1. SQL判断某列中是否包含中文字符、英文字符、纯数字,数据截取

    SQL判断某列中是否包含中文字符.英文字符.纯数字 一.包含中文字符 select * from 表名 where 列名 like '%[吖-座]%' [吖-座]是中文字符集第一个到最后一个的范围,虽 ...

  2. SQL判断某列中是否包含中文字符或者英文字符

    [sql] view plaincopy select * from 表名 where 某列 like '%[吖-座]%' select * from 表名 where 某列 like '%[a-z] ...

  3. sql 判断某列是小数

    select * from @tb where C1*10000%10000>0

  4. sql判断数据库类型数据_SQL数据类型

    sql判断数据库类型数据 SQL | 资料类型 (SQL | Data Types) Just like other programming languages, facilities of defi ...

  5. SQL 行转列 列转行 Oracle转置函数函数pivot、unpivot 解决wm_concat 没有排序

    https://www.cnblogs.com/mellowsmile/p/4642306.html HH 终风且暴,顾我则笑,谑浪笑敖,中心是悼. 终风且霾,惠然肯来,莫往莫来,悠悠我思. 博客园 ...

  6. SQL中行转列、列转行

    SQL行转列.列转行 这个主题还是比较常见的,行转列主要适用于对数据作聚合统计,如统计某类目的商品在某个时间区间的销售情况. 整理测试数据 create table wyc_test(id int(3 ...

  7. oracle如何判断数字中有字母,SQL 判断含有字母和数字的字符串

    SQL 判断含有字母和数字的字符串,你想从一个表里筛选出部分行数据,筛选条件是你感兴趣的那个列只包含字母和数字字符,考虑下面的视图 V(SQL Server 用户需要把字符串连接操作符||替换为 +) ...

  8. SQL行转列、列转行

    SQL行转列.列转行 这个主题还是比较常见的,行转列主要适用于对数据作聚合统计,如统计某类目的商品在某个时间区间的销售情况.列转行问题同样也很常见. 一.整理测试数据 create table wyc ...

  9. oracle判断非空并拼接,oracle sql 判断字段非空,数据不重复,插入多跳数据

     oracle sql 判断字段非空,数据不重复 select distinct(mobile) from wx_user_mobile where active_time is not null ...

最新文章

  1. Oracle脚本批量导入时,输出日志文件
  2. Linux_SELinux使用
  3. 【计算机网络】传输层 : TCP 协议 ( TCP 协议特点 | TCP 报文段首部格式 | TCP 报文段控制位 )
  4. asp连接mysql视频_asp连接mysql数据库详细实现代码
  5. Google Chrome —— Windows 10 下谷歌浏览器所有页面崩溃(黑屏)问题解决方案
  6. HSRP-热备份路由协议
  7. php 任意字符串_php 生成任意长度字符串的类(只含有数字 只含有字母 混合数字和字母)...
  8. Boostrap 响应式图像
  9. python jieba分词_从零开始学自然语言处理(八)—— jieba 黑科技
  10. 复盘:图像饱和度计算公式和图像信噪(PSNR)比计算公式
  11. vlan的基本指令_vlan划分命令
  12. M-02-10.[紫猫]Sqlite3数据库插件
  13. 小米笔记本安装系统 声卡驱动安装不上
  14. 计算机模拟仿真实例,计算机模拟仿真系统,computer simulation system,音标,读音,翻译,英文例句,英语词典...
  15. [语义分割]SPP、空洞卷积与ASPP总结
  16. 【笔记整理 - 操作系统】(时间较早)
  17. 《单片机原理及应用》复习提纲
  18. Vue3实现打字机效果
  19. 【软件测试】基础知识笔记(个人用)
  20. 文案写作之销售文案写作技巧

热门文章

  1. 【R】ployroot函数求解多项式方程
  2. DPDK服务核心(coremask)
  3. 【转】Linux 命令行下的好东西:一些常用指令
  4. __attribute__ ((__pure__))
  5. UNIX网络编程:unpv13e编译错误:net/if_dl.h:没有那个文件或目录
  6. python网页前端和react有什么区别_Vue 和 React 的优点分别是什么?
  7. mysql ef 一对多 更新数据库_Entity Framework_成功针对多种数据库使用实体框架(EF)...
  8. android文本与布局
  9. php通过ip地址查询位置,PHP通过IP获取地理位置
  10. python计算器程序代码_7_python之路之python计算器