刚学的TP5
目前正在建设一个网站。
项目搭建 结构是。
application
----api (提供接口)
----index (网站前台页面)
----common (公共)
----personal (用户管理后台)
默认的情况下访问地址分别应该是
http://localhot/index/controller/action (网站前台)
http://localhot/personal/controller/action (用户管理后台)
我希望 网站前台页面的url地址 不包含模块名称,但是其他的模块还是继续包含模块名称。。
http://localhot/controller/action (网站前台)
http://localhot/personal/controller/action (用户管理后台)
请问各位大佬如何设置????
目前我在route 里面设置了 隐藏模块名称。。。但是这样 导致 personal模块也不行。
// 隐藏默认模块名
Route::bind('web');
Route::rule(':controller/:action','web/:controller/:action');
要达到这个目标,你可以在application/route.php
中进行设置。
这是一个简单的例子:
<?php
use think\Route;
// 定义前台路由规则
Route::rule(':controller/:action','index/:controller/:action');
上述代码会匹配所有形如 http://localhost/controller/action
形式的路由,并将其映射到 index
模块下对应的控制器和操作。
然后你可以为其他模块定义专有的路由规则:
// 定义用户管理后台路由规则
Route::rule('personal/:controller/:action', 'personal/:controller/:action');
此处的代码会匹配所有形如 http://localhost/personal/controller/action
的地址,并将其映射到 personal
模块下对应的控制器和操作。
以上设置后,你就可以通过 http://localhost/controller/action 访问网站前台,通过 http://localhost/personal/controller/action 访问用户管理后台了。
注意这样设置后,如果两个模块中有相同的控制器和操作名,你可能需要在 router 中为它们定义不同的规则,否则可能会产生冲突。
希望能够帮助你。