现在的位置: 首页 >未分类>正文
thinkphp3.2 路由时出错提示:无法加载模块
2014年05月16日 ⁄ 未分类 暂无评论

利用onethink二次开发做了一个站,上线的时候发现url地址太长,所以考虑用路由来美化url,开始是这样写的:

/* URL配置 */
'URL_CASE_INSENSITIVE' => true, //默认false 表示URL区分大小写 true则表示不区分大小写
'URL_MODEL' => 2, //URL模式 0:普通模式 1:PATHINFO模式 2:REWRITE模式 3:兼容模式
'VAR_URL_PARAMS' => '', // PATHINFO URL参数变量
'URL_PATHINFO_DEPR' => '/', //PATHINFO URL分割符
'URL_HTML_SUFFIX' => '.html',

'URL_ROUTER_ON' => true,
'URL_ROUTE_RULES' => array(
'news/:idd' => array('Home/Article/detail'), //资讯详情

),

访问网站***.com/news/1.html的时候提示出现错误,错误提示如下:

无法加载模块:News

错误位置

FILE: E:wwwrootdichanThinkPHPLibraryThinkDispatcher.class.php  LINE: 168

然后各种搜索,官网都搜遍了还是没找到问题,差点急死老子了,查看官网手册,其中有句话这样说:

3.2的路由功能是针对模块设置的,所以URL中的模块名不能被路由,路由定义也通常是放在模块配置文件中。

哈哈,以前的版本都是写在公共文件里的config.php,原来3.2做了改动,必须写在模块的config.php,心中暗喜,是不是这个问题导致的错误,果断试了试,shit!还是不行,然后看了一下配置文件的配置,感觉比较可疑:

'MODULE_DENY_LIST' => array('Common','User','Admin','Install'),
//'MODULE_ALLOW_LIST' => array('Home','Admin'),

吧下边的那个注释删掉:

'MODULE_DENY_LIST' => array('Common','User','Admin','Install'),
'MODULE_ALLOW_LIST' => array('Home','Admin'),

刷新,路由正常,原来是这里的问题,原来3.2对模块的访问是自动判断的,所以通常情况下无需配置模块列表即可访问,在部署模块的时候,默认情况下都是基于类似于子目录的URL方式来访问模块的,所以这里的模块没有允许被访问。soga,这个问题憋了三天!!!终于解决了!

技术分享,技术交流,小涛与您共同成长
如果这篇文章对您有帮助,你就点击一下广告表示对我的赞助吧,我会更努力的!

给我留言

留言无头像?


×
腾讯微博