用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4865|回复: 5
收起左侧

[版本 3.x] codeigniter 3.0路由功能问题

[复制链接]
发表于 2015-4-18 10:56:24 | 显示全部楼层 |阅读模式
本帖最后由 wenjian337 于 2015-4-18 12:11 编辑

这两天试着试试codeigniter 3.0 发现路由不太好使,查看论坛也看到好多人遇到了同样的问题。
首先,整体的控制器你名称首字母大写,确实挺好看的(编程变出强迫症了);
废话不多说/
一个项目不可能就一个功能模块,我还是习惯于模块分组的方式来组织文件,于是会在controller底下建几个目录
├─controllers
│  ├─api
│  ├─home
│  └─user

但是这样的目录结构在3.0中会带来一些问题。我们设置config/routers.php中的$route['default_controller'] = 'index';
这时候使用http://your_url/home这样的方式去访问是没有问题的,但是如果使用http://your_url/这样的方式,就找不到页面
我想了几个方法
方法一,
步骤:
  • autoload.php,自动加载urlhelper
  • config.php,$config['uri_protocol']        = 'PATH_INFO';
  • 在controllers/文件夹下,建一个Index.php作为跳转,redirec('home/index'),跳转到你想要的首页去.
  • nginx配置
HTML复制代码
location ~ \.php {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi_params;
            set $path_info "";
            set $real_script_name $fastcgi_script_name;
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                set $real_script_name $1;
                set $path_info $2;
            }
            fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
            fastcgi_param SCRIPT_NAME $real_script_name;
            fastcgi_param PATH_INFO $path_info;
        }
复制代码

方法二:在routers.php定义规则$route['/']='home/index';这种恐怕不行,
方法三:在服务器软件上使用 rewrite 规则,前提是开启了nginx pathinfo;
HTML复制代码
 
 location / {
            rewrite ^/$ /home last;
                if (!-e $request_filename) {
                rewrite ^/(.*)$ /index.php/$1 last;
                break;
            }
        }
 
 
复制代码


哪位大神要是做出来了,劳驾指点一二,感激不尽。





发表于 2015-4-18 11:19:44 | 显示全部楼层
发表于 2015-4-18 11:19:56 | 显示全部楼层
文件名首字母必须大写的  这是3.0的特点  你不看手册骂来骂去能解决问题?
 楼主| 发表于 2015-4-18 12:00:49 | 显示全部楼层
Aloghli 发表于 2015-4-18 11:19
文件名首字母必须大写的  这是3.0的特点  你不看手册骂来骂去能解决问题?

我是说首字母大写好看,你看见我骂谁了?
 楼主| 发表于 2015-4-18 12:02:09 | 显示全部楼层
Closer 发表于 2015-4-18 11:19
請參閱 CI 社區 - 關於 3.0 的預設路由

谢谢。
发表于 2015-4-18 19:04:26 | 显示全部楼层
请先理解官方说明,并不是说不能模块分组。只是默认访问配置不能这么设置而已,控制器下建目录一样使用!!!

本版积分规则