嗨,我正在尝试将两个模块设置为一起工作。一个负责首页(前端模块),另一个负责管理页面(管理模块)。
我已经正常配置了两个模块的路由,当我分别测试它们时一切正常。一旦我尝试让它们一起工作,我就会遇到一些路由问题。
例如,当我尝试访问链接时:localhost.com/en/admin/index/add 框架使用前端模块路由配置而不是管理员。
所以基本上它试图去: 模块 - “Front”,Lang - “en”,Controller - “Admin”,Action - “Index”
但我需要的是: 模块 - “Admin”,Lang - “en”,Controller - “Index”,Action - “add” Param - “none”
所以需要告诉前端配置路由不要访问其中包含管理部分的链接,但我无法让它工作。这是我的前端模块路由:
'application' => array(
'type' => 'Segment',
'options' => array(
'route' => '[/:lang][/:controller[/:action[/:id]]]',
'constraints' => array(
//'controller' => '^((?!admin).)*[a-zA-Z][a-zA-Z0-9_-]*',
'lang' => '[a-zA-Z]{2}',
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
//'lang' => 'en',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '[/:lang][/:controller[/:action[/:id]]]',
'constraints' => array(
'lang' => '[a-zA-Z]{2}',
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
),
),
),
),
),
和管理员路由代码:
'admin' => array(
'type' => 'Segment',
'options' => array(
'route' => '/admin[/:lang][/:controller[/:action[/:id]]]',
'constraints' => array(
//'controller' => '^((?!admin).)*[a-zA-Z][a-zA-Z0-9_-]*',
'lang' => '[a-zA-Z]{2}',
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'__NAMESPACE__' => 'Admin\Controller',
'lang' => 'en',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '[/:lang][/:controller[/:action[/:id]]]',
'constraints' => array(
'lang' => '[a-zA-Z]{2}',
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
),
),
),
),
),