ZF2主机名路由器:将域和tld作为一个参数

时间:2013-01-30 05:53:34

标签: php zend-framework2 zend-route

我有一条路线,比如:

            array(
            'type'    => 'Hostname',
            'options' => array(
                'route'    => ':subdomain.:domain.:tld',
                'defaults' => array(
                    '__NAMESPACE__' => 'Application\Controller',
                    'controller'    => 'Index',
                    'action'        => 'index',
                ),
            )

我想要做的是将domain.tld作为一个单独的参数,因为我想将域限制为列表,例如'application1.com','example.org'等。

我试过

        array(
            'type'    => 'Hostname',
            'options' => array(
                'route'    => ':subdomain.:domain',
                'defaults' => array(
                    '__NAMESPACE__' => 'Application\Controller',
                    'controller'    => 'Index',
                    'action'        => 'index',
            ),

是否可以将域和tld作为单个路由器参数处理?

1 个答案:

答案 0 :(得分:2)

我认为你不能用那个特定的路由器做到这一点,但你可以:

1)扩展/创建一个新路由器以按您的需要行事

2)将此限制移到代码库之外。

3)使用事件在bootstrap / dispatch上检查域并采取适当的措施

我建议在较低级别(通过apache / web服务器)而不是代码中执行此类限制。 如果你想把它放在代码中,这可能不是最好的地方。