首页 新闻 会员 周边

TP5 路由设置 隐藏模块名称设置

0
悬赏园豆:20 [待解决问题]

刚学的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');

五百万的主页 五百万 | 初学一级 | 园豆:33
提问于:2023-09-06 09:32
< >
分享
所有回答(1)
0

要达到这个目标,你可以在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 中为它们定义不同的规则,否则可能会产生冲突。

希望能够帮助你。

npe0 | 园豆:1299 (小虾三级) | 2023-12-12 16:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册