关于thinkPHP的路由

本文解决ThinkPHP5.0环境下URL访问问题,包括多模块支持、控制器及操作方法未找到等错误,通过配置入口文件和Apache重写规则实现。

环境: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    这种能正确访问各个方法。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值