我需要我的路由器配置如下:
www.bmob.co.uk -> DtCompanyDataControllerCompanyMap
wage.bmob.co.uk -> DtWageControllerWage
wage.bmob.co.uk/brighton -> DtWageControllerWageBrighton
阅读文档和此处的许多类似问题后,我可以让路由适用于子域或子路由,但不能同时使用两者。
当我有
// In Application/config/module.config.php:
'home' => array(
'type' => 'hostname',
'options' => array(
'route' => 'www.bmob.co.uk',
'defaults' => array(
'__NAMESPACE__' => 'DtCompanyDataController',
'controller' => 'DtCompanyDataControllerCompanyMap',
'action' => 'index',
),
),
),
// In DtWage/config/module.config.php:
'wage' => array(
'type' => 'hostname',
'options' => array(
'route' => 'wage.bmob.co.uk',
'defaults' => array(
'__NAMESPACE__' => 'DtWageController',
'controller' => 'DtWageControllerWage',
'action' => 'index',
),
),
'may_terminate' => true,
),
我得到:
www.bmob.co.uk - works
wage.bmob.co.uk - works
wage.bmob.co.uk/brighton - goes to same page as wage.bmob.co.uk
当我有:
// In Application/config/module.config.php:
'home' => array(
'type' => 'hostname',
'options' => array(
'route' => 'www.bmob.co.uk',
'defaults' => array(
'__NAMESPACE__' => 'DtCompanyDataController',
'controller' => 'DtCompanyDataControllerCompanyMap',
'action' => 'index',
),
),
),
// In DtWage/config/module.config.php:
'wage' => array(
'type' => 'hostname',
'options' => array(
'route' => 'wage.bmob.co.uk',
'defaults' => array(
'__NAMESPACE__' => 'DtWageController',
'controller' => 'DtWageControllerWage',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'wagebrighton' => array(
'type' => 'literal',
'options' => array(
'route' => '/brighton',
'defaults' => array(
'__NAMESPACE__' => 'DtWageController', // Have also tried without this line, same result
'controller' => 'DtWageControllerWageBrighton',
'action' => 'index',
),
),
),
),
),
我得到:
www.bmob.co.uk - works
wage.bmob.co.uk - 404 The requested URL could not be matched by routing.
wage.bmob.co.uk/brighton - works
我在这里做错了什么?如何让 wage.bmob.co.uk 和 wage.bmob.co.uk/brighton 同时工作?谢谢。
我会尝试两种配置:
'wage' => array(
'type' => 'hostname',
'options' => array(
'route' => 'wage.bmob.co.uk/',
'defaults' => array(
'__NAMESPACE__' => 'DtWageController',
'controller' => 'DtWageControllerWage',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'wagebrighton' => array(
'type' => 'literal',
'options' => array(
'route' => '/brighton',
'defaults' => array(
'__NAMESPACE__' => 'DtWageController', // Have also tried without this line, same result
'controller' => 'DtWageControllerWageBrighton',
'action' => 'index',
),
),
),
),
),
或
'wage' => array(
'type' => 'hostname',
'options' => array(
'route' => 'wage.bmob.co.uk',
'defaults' => array(
'__NAMESPACE__' => 'DtWageController',
),
),
'may_terminate' => false,
'child_routes' => array(
'wagehome' => array(
'type' => 'literal',
'options' => array(
'route' => '/',
'defaults' => array(
'__NAMESPACE__' => 'DtWageController',
'controller' => 'DtWageControllerWage',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'wagebrighton' => array(
'type' => 'literal',
'options' => array(
'route' => '/brighton',
'defaults' => array(
'__NAMESPACE__' => 'DtWageController',
'controller' => 'DtWageControllerWageBrighton',
'action' => 'index',
),
),
),
),
),
),
),
编辑:这个呢:
'wage' => array(
'type' => 'hostname',
'options' => array(
'route' => 'wage.bmob.co.uk',
'defaults' => array(
'__NAMESPACE__' => 'DtWageController',
),
),
'may_terminate' => false,
'child_routes' => array(
'wagehome' => array(
'type' => 'literal',
'options' => array(
'route' => '/',
'defaults' => array(
'__NAMESPACE__' => 'DtWageController',
'controller' => 'DtWageControllerWage',
'action' => 'index',
),
),
),
'wagebrighton' => array(
'type' => 'literal',
'options' => array(
'route' => '/brighton',
'defaults' => array(
'__NAMESPACE__' => 'DtWageController',
'controller' => 'DtWageControllerWageBrighton',
'action' => 'index',
),
),
),
),
),