2013-01-21 55 views
1

我需要爲我的ZF2應用程序設置一個路由,其中​​有一個可變點。帶子域中可變點的ZF2子域路由

例如,我需要路由子域名像;

john.van.der.berg.domain.tld 
nick.van.eisselsain.domain.tld 
james.morris.domain.tld 

我知道子域中點的將始終爲1,2或3

我現在必須遵循設置爲我的路線,但我無法弄清楚如何 與點做呢?

'username' => array(
       'type' => 'hostname', 
       'options' => array(
        'route' => ':username.domain.localhost', 
        'constraints' => array(
          'action' => 'username', 
          'username' => '[a-zA-Z0-9.]{1,3}*', 
        ), 
        'defaults' => array(
         '__NAMESPACE__' => 'Users\Controller', 
         'controller' => 'Users', 
         'action'  => 'website', 
        ), 
       ), 
      ), 

在此先感謝!

+0

由於'.'是任意字符,因此'regex'中的點需要被轉義'\ .'。此外,我完全不知道這一點,但我認爲域上的每個'.'都將是一個新的子域。所以你最終會擁有一個子子域名,它不能像這樣配置。建議:只修剪'字母數字'字符的用戶名。這也使得你的路由也很容易。 – Sam

+0

重新閱讀您的評論。你是對的。在一個路由配置中不可能做到這一點。我需要爲可能性創建3個配置,並通過插件或其他方式處理此問題,以便爲重定向設置正確的路由名稱。 – directory

回答

0

從ZF 2.1.3開始,您顯示的代碼應該正常工作。