子域的ZF2 URL帮助程序

时间:2016-02-17 18:28:31

标签: php zend-framework routing subdomain development-environment

我有一个包含四个子域名的网站:

http://www.domain.com/
http://dev.www.domain.com/     # (dev environment for www.domain.com)
http://blog.domain.com/
http://dev.blog.domain.com/    # (dev environment for blog.domain.com)

我想将www子域名中的链接添加到我的blog子域名中,以便:

  • 如果我正在查看http://www.domain.com/,则链接网址应为http://blog.domain.com
  • 如果我正在查看http://dev.www.domain.com/,则链接网址应为http://dev.blog.domain.com

使用Zend Framework 2的URL帮助程序是否有一种简单的方法可以做到这一点?

我已尝试为blog子域设置路由,如下所示:

'blog' => [
    'type'    => 'Zend\Mvc\Router\Http\Hostname',
    'options' => '[:1st.]blog.domain.com',
    'constraints' => [
        '1st' => 'dev',
    ]
],

来自dev.www子域的视图中的URL帮助调用如下所示:

$this->url('blog', [], null, true);

我认为将true作为第四个参数传递将保持现有参数不变。但是,生成的网址始终为http://blog.domain.com/,而不是所需的http://dev.blog.domain.com/

有什么想法吗?我想知道我是否在ZF2中发现了一个错误。谢谢。

1 个答案:

答案 0 :(得分:1)

我明白了。参数未保持完整的原因是因为www子域中不存在该参数。所以,我需要更新我的www子域路由,如下所示:

'www' => [
    'type' => 'Zend\Mvc\Router\Http\Hostname',
    'options' => [
        'route' => '[:dev.]www.worksessions.com',
        'constraints' => [
            'dev' => 'dev',
        ),
    ),
    'may_terminate' => false,
    'child_routes' => [
        // Routes which were literal and part of www go here.
    ],

现在,当使用网址视图助手从www导航到blogdev.www再到dev.blog时,dev参数仍保持不变!瞧!