环境:wamp + thinkPHP5.0
1 第一个地址 http://www.process.com/index.php/index/index/indexs (正常)
2 第二个地址 http://www.process.com/index/index/indexs(not found)
3 第三个地址 http://www.process.com/index.php/index/indexs(控制器不存在)
4 http://www.process.com (默认访问 下 5 ,6 同)
5 http://www.process.com/index.php
6 http://www.process.com/index.php/index/index
配置文件 已经开启支持多模块,入口文件自动绑定。
定位到源码 think\App.php module方法。 因为当以第三个地址去访问的时候,第一个参数的第三个下标元素是null,其实方法没有找到,我是indexs方法。系统处理为默认的index(配置文件里)。按照注释:$result 数组第一个是模块 第二个是控制器 第三个是操作。
处理方案:(我是指仍要以第三种方案的URL去访问)
因为 代码继续运行,在module方法里我们发现 $bind的值是null。源码内认为这不是多模块部署。
这不扯嘚嘛这不?不是说我没绑定,那我尝试绑一下。
尝试百度,都是乱七八糟互相抄,抄完写博客。
解决如下图:在该模块的入口文件添加图中一行。(当然其他的模块也要添加相应的入口文件绑定。)
再说 第二地址 http://www.process.com/index/index/indexs(not found)
说白了就是把index.php的.php去掉。按照第二个URL去访问,是404 找不到页面。
开启 Apache rewrite
allowoverride none 改为 all
就可以了。
新问题 所有方法都是访问 index 。
http://www.process.com/index/index/fa (所有访问都是请求默认index方法)
http://www.process.com/index.php/index/fa 这种能正确访问各个方法。