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

[URL] 无法一个codeigniter下运行两个应用

[复制链接]
发表于 2018-6-3 20:57:51 | 显示全部楼层 |阅读模式
本帖最后由 zjhit0409 于 2018-11-2 19:40 编辑

admin.php里面也改成了
PHP复制代码
$application_folder = 'application/ucenter';
复制代码

现在问题就是,访问example.com/admin/role/list,他会默认指向admin控制器的role方法,其实应该是admin应用的role控制器list方法
想问一下如何才能解决这个问题?谢谢!
发表于 2018-6-7 00:08:17 | 显示全部楼层
zjhit0409 发表于 2018-6-6 22:33
你是要ci的报错吗……?

页面就显示普通的ci的404页面,其他啥都没写,只不过是我自己加了个显示uri的函 ...

我实际测试了一下,主要原因是因为你的 /user/ 或 /admin/ 这个 uri 造成的,因为 /user/ 这个 uri 会直接传递给 user.php 这个 app,而你这个 app 里并没有 user 控制器,解决方法有两个,一个是用 CI 的路由,例如: $route['user'] = 'welcome'; 强行把 /user 转到 welcome 控制器(请换成你实际的控制器名);另一个方法是用 nginx 把 /user/xxx rewrite 成 /xxx

简单说就是 /user 这个路径是多余的。

我用 CI 路由的方式亲测是可行的,只是你需要根据你的业务写路由规则。
发表于 2018-6-11 11:34:01 | 显示全部楼层
Hex 发表于 2018-6-4 12:17
我了解是两个独立 APP,但是你说 admin 控制器?你不是两个 app 么,为什么还有 admin 控制器呢? ...

怎么说呢.
也就是 application1 和 application2 分别对应 admin.php 和 user.php 两个入口文件.
然后将一些公共的文件取到 assets 内.
models 可以写在 assets 里,这样的话, application1 和 application2都能调用.
也可以直接分别在对应的 application 下的 models 写,这样可以自用...
我想表达的应该是这个意思吧.
 楼主| 发表于 2018-6-6 15:47:14 | 显示全部楼层
Hex 发表于 2018-6-4 15:29
phpfpm 就是运行 php 的,你可以 google 一下。

没有 admin 控制器,那你说会访问 admin 控制器下的 rol ...

我意思是这样

访问/admin/role/list

我理想中是指向admin应用里边的role控制器的list方法

但报错显示他指向了admin控制器的role方法,list是参数(这个是错误的)

我也在nginx配置好了的,/admin/是重定向到/member/admin.php(admin.php是入口文件)
发表于 2018-6-3 21:24:22 | 显示全部楼层
看起来有可能是 nginx 的 phpfpm 配置有问题,你贴的这个 try_files 看起来没问题。你的问题应该就是 nginx 配置的问题。你可以贴一下 phpfpm 配置。

另外,你有 admin 这个控制器吗?如果你需要 admin 应用,那就不能有 admin 控制器,这个不能重名。
发表于 2018-6-4 09:00:08 | 显示全部楼层
我是独立两个app出来的,然后两个入口文件.
发表于 2018-6-4 12:17:52 | 显示全部楼层
Skiy 发表于 2018-6-4 09:00
我是独立两个app出来的,然后两个入口文件.

我了解是两个独立 APP,但是你说 admin 控制器?你不是两个 app 么,为什么还有 admin 控制器呢?
 楼主| 发表于 2018-6-4 13:03:57 CI中国手机版 | 显示全部楼层
Hex 发表于 2018-6-3 21:24
看起来有可能是 nginx 的 phpfpm 配置有问题,你贴的这个 try_files 看起来没问题。你的问题应该就是 nginx ...

抱歉想问一下phpfpm是什么[尴尬]

两个应用都没有admin这个控制器。
发表于 2018-6-4 15:29:23 | 显示全部楼层
zjhit0409 发表于 2018-6-4 13:03
抱歉想问一下phpfpm是什么[尴尬]

两个应用都没有admin这个控制器。

phpfpm 就是运行 php 的,你可以 google 一下。

没有 admin 控制器,那你说会访问 admin 控制器下的 role 方法?没有这个控制器怎么访问 role 方法?不太理解你要表达什么。
发表于 2018-6-5 14:57:00 | 显示全部楼层
单独的app入口index.php 共用system即可
 楼主| 发表于 2018-6-6 15:47:38 | 显示全部楼层
dy7338 发表于 2018-6-5 14:57
单独的app入口index.php 共用system即可

已经是分别单独的入口了,就是不行……
发表于 2018-6-6 15:55:22 | 显示全部楼层
zjhit0409 发表于 2018-6-6 15:47
已经是分别单独的入口了,就是不行……

听你的意思 有点像thinkphp里面的group分组一样。干嘛不用多域名来指定不同的app。你的这种访问方式确实会存在问题。

本版积分规则