因为我想分离系统的前端和后端。我在控制器中创建了2个文件夹作为前端和后端
以下是我的控制器文件夹的结构
controller
--frontend
---store.php
---processing.php
---profile.php
---authenticate.php
---register.php
--backend
---authenticate.php
---stats.php
---users.php
---property_manage.php
---register.php
我可以使用
访问这些功能frontend/store/add
frontend/store/manage
......
backend/stats/sales
backend/stats/payments
.....
但我想从网址中取下前端和后端网段。
我检查了codeigniter中的路由功能,但据我所知,我需要单独指定每条路由。由于我有大约12个控制器,每个控制器有大约10-15个功能,我可能需要指定路由的每个功能。
有没有其他有效的方法来实现使用路由或任何其他方式? (不使用任何htaccess)
答案 0 :(得分:21)
这样做:
$route['store/(:any)'] = 'frontend/store/$1';
$route['processing/(:any)'] = 'frontend/processing/$1';
$route['profile/(:any)'] = 'frontend/profile/$1';
后端相同:
$route['backend/(:any)'] = 'backend/authenticate/$1';
您不必在routes.php中为控制器的每个功能创建每个规则,而是如上所述,每个控制器一个规则就足够了。
URI Routing : CodeIgniter User Guide
$1
代表第一个表达式,此处(:any)
是表达式,每个规则上可以有多个表达式,表达式表示为$1
,$2
等等在另一边。
同样,(:num)
将匹配仅包含数字的细分,(:any)
将匹配包含任何字符的细分,(\d+)
将匹配任何数字,([a-z]+)
将匹配任何字母文本。
答案 1 :(得分:1)
你必须能够以某种方式区分前端和后端。也许设置一条路线,将任何带有“admin”的uri转发到后端,以及任何没有“admin”的前端。
答案 2 :(得分:0)
对于前端,您可以在routes.php中添加:
$this->set_directory( "frontend" );
因此,在浏览器网址中,无需包含"前端"