2009-08-09 7 views
0

이 라우터를 어떻게 하나로 병합 할 수 있습니까? 이 라우터 대신 하나의 라우터 만 갖고 싶습니다. 나는 어떤 대답을 주셔서 감사합니다. :) 그래서 그 대신 당신이 지금 가지고있는 네 개의 경로젠드 프레임 워크의 정규식 라우터,이 라우터를 병합하는 방법은 무엇입니까?

 $route = new Zend_Controller_Router_Route_Regex(
     '([a-z]{2})/(\w+)/(\w+)/(\w+)', 
     array('controller'=>'index', 
      'action' => 'index', 
      'module'=>'default', 
      'lang'=>$lang 
     ), 
     array(
      1=>'lang', 
      2=>'module', 
      3=>'controller', 
      4=>'action' 
     ) 
    ); 
    $router->addRoute('default_lang_action', $route); 

    $route = new Zend_Controller_Router_Route_Regex(
     '([a-z]{2})/(\w+)/(\w+)', 
     array('controller'=>'index', 
      'action' => 'index', 
      'module'=>'login', 
      'lang'=>$lang 
     ), 
     array(
      1=>'lang', 
      2=>'module', 
      3=>'controller' 
      ) 
    ); 
    $router->addRoute('default_lang_con', $route); 

    $route = new Zend_Controller_Router_Route_Regex(
     '([a-z]{2})/(\w+)', 
     array('controller'=>'index', 
      'action' => 'index', 
      'module'=>'default', 
      'lang'=>$lang 
     ), 
     array(
      1=>'lang', 
      2=>'module' 
     ) 
    ); 
    $router->addRoute('default_lang_mod', $route); 

    $route = new Zend_Controller_Router_Route_Regex(
     '([a-z]{2})', 
     array('controller'=>'index', 
      'action' => 'index', 
      'module'=>'default', 
      'lang'=>$lang 
     ), 
     array(
      1=>'lang' 
     ) 
    ); 
      $router->addRoute('default_lang', $route); 
+0

변경 (. * \ w)을 ([* \ w] *)! RE는 새로운 RE입니다. –

답변

2

을, 당신이 원하는 마지막 세 개의 매개 변수는 선택하는 하나 개의 경로는? 이 정규식을 사용해보십시오.

'([a-z]{2})(?:/(\w+)(?:/(\w+)(?:/(\w+))?)?)?' 
+0

앨런 M. 감사합니다. 정말 고맙습니다. –

관련 문제