带有子路由的子域的 ZF2 路由器配置 [英] ZF2 router configuration for subdomain with child routes

查看:31
本文介绍了带有子路由的子域的 ZF2 路由器配置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要我的路由器配置如下:

I need my router configuration to work as follows:

www.bmob.co.uk           -> DtCompanyData\Controller\CompanyMap   
wage.bmob.co.uk          -> DtWage\Controller\Wage  
wage.bmob.co.uk/brighton -> DtWage\Controller\WageBrighton  

阅读文档和此处的许多类似问题后,我可以让路由为子域或子域工作,但不能同时为两者工作.

After reading the documentation and many similar questions on here, I can get the routing to work either for the subdomain, or for the child routes, but not both at the same time.

当我有

// In Application/config/module.config.php:

'home' => array(
    'type' => 'hostname',
    'options' => array(
        'route' => 'www.bmob.co.uk',
        'defaults' => array(
            '__NAMESPACE__' => 'DtCompanyData\Controller',
            'controller' => 'DtCompanyData\Controller\CompanyMap',
            'action' => 'index',
        ),
    ),
),

// In DtWage/config/module.config.php:

'wage' => array(
    'type' => 'hostname',
    'options' => array(
        'route' => 'wage.bmob.co.uk',
        'defaults' => array(
            '__NAMESPACE__' => 'DtWage\Controller',
            'controller' => 'DtWage\Controller\Wage',
            '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__' => 'DtCompanyData\Controller',
            'controller' => 'DtCompanyData\Controller\CompanyMap',
            'action' => 'index',
        ),
    ),
),

// In DtWage/config/module.config.php:

'wage' => array(
    'type' => 'hostname',
    'options' => array(
        'route' => 'wage.bmob.co.uk',
        'defaults' => array(
            '__NAMESPACE__' => 'DtWage\Controller',
            'controller' => 'DtWage\Controller\Wage',
            'action' => 'index',
        ),
    ),
    'may_terminate' => true,
    'child_routes' => array(
        'wagebrighton' => array( 
            'type' => 'literal',
            'options' => array(
                'route' => '/brighton',
                'defaults' => array(
                    '__NAMESPACE__' => 'DtWage\Controller',   // Have also tried without this line, same result
                    'controller' => 'DtWage\Controller\WageBrighton',
                    '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 同时工作?谢谢.

What am I doing wrong here? How to I get wage.bmob.co.uk and wage.bmob.co.uk/brighton to both work at the same time? Thanks.

推荐答案

我会尝试两种配置:

'wage' => array(
    'type' => 'hostname',
    'options' => array(
        'route' => 'wage.bmob.co.uk/',
        'defaults' => array(
            '__NAMESPACE__' => 'DtWage\Controller',
            'controller' => 'DtWage\Controller\Wage',
            'action' => 'index',
        ),
    ),
    'may_terminate' => true,
    'child_routes' => array(
        'wagebrighton' => array(
            'type' => 'literal',
            'options' => array(
                'route' => '/brighton',
                'defaults' => array(
                    '__NAMESPACE__' => 'DtWage\Controller', // Have also tried without this line, same result
                    'controller' => 'DtWage\Controller\WageBrighton',
                    'action' => 'index',
                ),
            ),
        ),
    ),
),

'wage' => array(
    'type' => 'hostname',
    'options' => array(
        'route' => 'wage.bmob.co.uk',
        'defaults' => array(
            '__NAMESPACE__' => 'DtWage\Controller',
        ),
    ),
    'may_terminate' => false,
    'child_routes' => array(
        'wagehome' => array(
            'type' => 'literal',
            'options' => array(
                'route' => '/',
                'defaults' => array(
                    '__NAMESPACE__' => 'DtWage\Controller',
                    'controller' => 'DtWage\Controller\Wage',
                    'action' => 'index',
                ),
            ),
            'may_terminate' => true,
            'child_routes' => array(
                'wagebrighton' => array(
                    'type' => 'literal',
                    'options' => array(
                        'route' => '/brighton',
                        'defaults' => array(
                            '__NAMESPACE__' => 'DtWage\Controller',
                            'controller' => 'DtWage\Controller\WageBrighton',
                            'action' => 'index',
                        ),
                    ),
                ),
            ),
        ),
    ),
),

这个怎么样:

'wage' => array(
    'type' => 'hostname',
    'options' => array(
        'route' => 'wage.bmob.co.uk',
        'defaults' => array(
            '__NAMESPACE__' => 'DtWage\Controller',
        ),
    ),
    'may_terminate' => false,
    'child_routes' => array(
        'wagehome' => array(
            'type' => 'literal',
            'options' => array(
                'route' => '/',
                'defaults' => array(
                    '__NAMESPACE__' => 'DtWage\Controller',
                    'controller' => 'DtWage\Controller\Wage',
                    'action' => 'index',
                ),
            ),
        ),
        'wagebrighton' => array(
            'type' => 'literal',
            'options' => array(
                'route' => '/brighton',
                'defaults' => array(
                    '__NAMESPACE__' => 'DtWage\Controller',
                    'controller' => 'DtWage\Controller\WageBrighton',
                    'action' => 'index',
                ),
            ),
        ),
    ),
),

这篇关于带有子路由的子域的 ZF2 路由器配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆