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

[HELP] 多应用程序问题!

[复制链接]
发表于 2012-10-18 11:12:23 | 显示全部楼层 |阅读模式
我在Application下创建了两个文件夹,类似这样:
applications/home/
applications/home/config/
applications/home/controllers/
applications/home/errors/
applications/home/libraries/
applications/home/models/
applications/home/views/
applications/admin/
applications/admin/config/
applications/admin/controllers/
applications/admin/errors/
applications/admin/libraries/
applications/admin/models/
applications/admin/views/

在根目录下index.php设置$application_folder = "applications/foo";
         admin.php 设置$application_folder = "applications/admin";
OK,一切正常。问题是访问admin应用程序时。地址是这样:http://www.xxxx.com/admin.php/login
请问,如何隐藏admin.php,使地址变成这样http://www.xxxx.com/admin/login

发表于 2014-5-1 00:26:35 | 显示全部楼层
共用SYSTEM 但怎样共用配置文件呢
发表于 2012-10-18 11:20:51 | 显示全部楼层
直接复制一个applications叫admin  

然后在根目录下index.php里判断来源的地址进行分流  
如果是前台地址{
$application_folder = 'application';
}如果是后台地址{
$application_folder = 'admin';
}
 楼主| 发表于 2012-10-18 11:43:21 | 显示全部楼层
本帖最后由 bc523 于 2012-10-18 11:50 编辑
sdink 发表于 2012-10-18 11:20
直接复制一个applications叫admin  

然后在根目录下index.php里判断来源的地址进行分流  


这样是能初步实现。但是地址不好判断。只有整个管理域名。CI没有分组功能么?
发表于 2012-10-18 11:54:57 | 显示全部楼层
共用一个system而已
发表于 2012-10-18 12:02:56 | 显示全部楼层
bc523 发表于 2012-10-18 11:43
这样是能初步实现。但是地址不好判断。只有整个管理域名。CI没有分组功能么? ...

怎么不好判断了。取出当前地址没有问题吧,
如你的域名是bssss.com
访问前台www.bssss.com,或是bssss.com
访问后台www.bssss.com/admin,或是bssss.com/admin

取出当前地址,他们都共有一个bssss.com
然后你就判断bssss.com/admin是不是在该地址中出现,
如果出现那么就是后台,如果没有那就是前台。
 楼主| 发表于 2012-10-18 12:28:17 | 显示全部楼层
本帖最后由 bc523 于 2012-10-18 12:31 编辑
sdink 发表于 2012-10-18 12:02
怎么不好判断了。取出当前地址没有问题吧,
如你的域名是bssss.com
访问前台www.bssss.com,或是bssss.co ...


这样当然行。但是bssss.com/admin 就意味着访问后台任何一个控制器都要经过admin.php这个文件。
发表于 2012-10-18 13:04:57 | 显示全部楼层
bc523 发表于 2012-10-18 12:28
这样当然行。但是bssss.com/admin 就意味着访问后台任何一个控制器都要经过admin.php这个文件。 ...

admin.php不要了老大。你就是一个index.php了 N个程序共享index.php和system。而applications可以起多个啊

你要让他访问那个applications你自己在index.php根据域名来判断。。。。。。。。。。。。
 楼主| 发表于 2012-10-18 13:51:40 | 显示全部楼层
sdink 发表于 2012-10-18 13:04
admin.php不要了老大。你就是一个index.php了 N个程序共享index.php和system。而applications可以起多个 ...


你理解错了。根目录下没有admin.php.然而bssss.com/admin。访问的应该是applications/admin/controllers/
文件夹下的admin.php文件。没错吧。这样的情况下。是不是访问每个后台应用程序都会经过admin.php这个文件呢?
发表于 2012-10-18 15:56:55 | 显示全部楼层
bc523 发表于 2012-10-18 13:51
你理解错了。根目录下没有admin.php.然而bssss.com/admin。访问的应该是applications/admin/controllers/ ...

爱咱咱,不管了。教你方便的方法你看不懂。。。。你非要访问applications目录下也没有问题。那就是bssss.com/admin对应applications/admin/welcome(默认) 控制器。bssss.com/admin/test对应applications/admin/test ,bssss.com/admin/test/add对应applications/admin/test/add

注意的是ci只支持一级目录,所以你只这样写
../applications
--------------/admin
../-------------------/welcome.php
../-------------------/test.php

当然多出的就可以用方法或是传参来解决
如访问bssss.com/admin/test/add
../-------------------/test.php
class test{
   function add(){

   }
}
如访问bssss.com/admin/test/add/1

class test{
   function add($id=null){
     echo $id;
   }
}
 楼主| 发表于 2012-10-18 16:02:31 | 显示全部楼层
本帖最后由 bc523 于 2012-10-18 16:36 编辑
sdink 发表于 2012-10-18 15:56
爱咱咱,不管了。教你方便的方法你看不懂。。。。你非要访问applications目录下也没有问题。那就是bssss. ...


我知道你的意思。你是说复制一个application。
我复制了一个改为admin.原来的改为home.
index.php 判断ci.com/admin 即访问admin
但是这样是访问admin文件夹。达不到预期效果。需要复制index.php到admin文件夹下
并设置
$system_path = '../Core';
$application_folder = '../admin';

但是。访问ci.com/admin。是访问admin/controllers/文件夹下的admin文件。
但是如果我要访问admin/controllers/main.php文件呢?
是不是ci.com/admin/main?显然不行。这是访问admin模块的main方法。
所以我纠结的是这个问题。

当然你最后回复说的方法可以用。我先前也是这样的。
不过就是有点混乱。所以我看到手册上的管理应用程序提出了先前的问题

感谢你的回答!

本版积分规则