1. 前台后台统一目录管理
将后台管理界面Admin放入myWeb目录下,实现前台和后台放在同一目录,便于管理和维护。
具体步骤:
1. 将/myWeb/Home目录复制粘贴为/Admin目录;
2. 修改/Admin/Controller/IndexController.class.php文件,将其namespace对应的路径由/Home/Controller修改为/Admin/Controller
3. 这时,就可以通过目录:http://localhost/thinkphp/Index.php/Admin访问后台Admin接口
说明:url中index.php对应于Application的根目录。
2. 修改模块访问权限
修改/Common/Conf/Config.php文件。
2.1禁止访问:MODULE_DENY_LIST
//‘配置项‘=>‘配置值‘ //禁止模块访问 ‘MODULE_DENY_LIST‘=>array(‘Common‘,‘Runtime‘,"Admin")
这样可以控制下面目录访问权限
由于Common目录原来就没有Index文件,因此,禁止访问前,访问Common目录效果是这样的。
无法加载控制器,因为找不到Index
禁止访问后,访问目录效果是这样的:
2.2允许访问:MODULE_ALLOW_LIST
注意,当使用了MODULE_ALLOW_LIST后,不可同时使用MODULE_DENY_LIST。另外,MODULE_ALLOW_LIST使用后,在LIST之外的全部模块均将不可访问。
//允许模块访问,当采用此配置时,在ALLOW_LIST范围外的模块,都不可访问。 ‘MODULE_ALLOW_LIST‘ => array (‘Admin‘),
2.3设置默认访问模块
当系统中有多个模块可以访问时,可以采用DEFAULT_MODULE设置默认访问模块,注意,这里不需要采用Array方式设置。设置完毕后,系统将对应模块设置为默认加载。
//DEFAULT_MODULE为默认访问模块 ‘DEFAULT_MODULE‘=>‘Admin‘,
2.4为不同模块设置单一入口
把根目录下的index.php复制粘贴为admin.php,并且修改其内容。
//加载Admin模块 $_GET[‘m‘]=‘Admin‘;
修改完后,可以直接通过以下URL访问http://localhost/thinkphp/admin.php
同样,可以修改配置
2.5 默认加载admin控制器
将IndexController.class.php修改为AdminController.class.php,并对内容进行修改。
class AdminController extends Controller { public function index(){ echo ‘Admin Admin‘; } }
然后,在根目录的/admin.php中,增加c参数配置
//加载控制器模块 $_GET[‘c‘] = ‘Admin‘;
这样,系统则会加载\Admin\Controller目录下的AdminController.class.php文件,而非IndexController.class.php文件。
3. URL操作模式
TP的URL操作模式包括:
- PATHINFO模式
- 普通模式
- REWRITE模式
- 兼容模式
3.1PATHINFO模式:
/index.php/模块/控制器/方法名。
例如:在/Home/Controller目录下创建UserController.class.php,其中Controller修改为:
class UserController extends Controller { public function index(){ echo ‘User Index‘; }
访问下面路径,可以访问到默认的index方法: http://localhost/thinkphp/index.php/Home/User
其中,方法操作中采用/方法名/参数1名字/参数/参数2名字/参数的方式。
例如:模块名:Home, 控制器:Controller, 方法名:Test,参数1:User, 参数:zhangsan 参数2:password,参数:123
对应代码如下
public function test($user,$password){ echo ‘$user‘.$user.‘<br/>password‘.$pass; }
对应访问连接如下:
http://localhost/thinkphp/index.php/Home/User/test/user/zhangsan/pass/123
访问结果如下:
PATHINFO模式默认分隔符为/。如果需要修改分隔符,则在/Common/Conf/config.php中设置参数URL_PATHINFO_DEPR
//分隔符设置 ‘URL_PATHINFO_DEPR‘=>‘_‘,
http://localhost/thinkphp/index.php/Home_User_test_user_zhangsan_pass_123
3.2普通模式
http://localhost/thinkphp/index.php?m=Home&c=User&a=test&user=zhangsan&pass=123
其中m表示模块, c表示用户,a表示方法,后面为参数名和参数
普通模式下,通过VAR_MODULE, VAR_CONTROLLER, VAR_ACTION三种方式,可以自定义键值。
//‘URL_PATHINFO_DEPR‘=>‘_‘, ‘VAR_MODULE‘=>‘mm‘, ‘VAR_CONTROLLER‘=>‘cc‘, ‘VAR_ACTION‘=>‘aa‘,
3.3重写模式
打开apache的httpd.conf