Zend Regex> Проблема модуля маршрута

iam с помощью zend framework для создания веб-службы REST, и я использую модули для разделения своих api-версий, как я упомянул здесь

Пример: «приложения / модули / v1 / контроллеры», «приложения / модули / v2 / контроллеры» имеют различный набор действий и функций. Я упомянул мой модуль по умолчанию как «v1» в своем приложении application.ini

Я использую контекстное переключение вместе с Regex Routing, как я упомянул здесь в моем принятом решении:

$router->addRoute( 'route1', new Zend_Controller_Router_Route_Regex( 'api/([^-]*)/([^-]*)\.([^-]*)', array( 'controller' => 'index', 'action' => 'index'), array( 1 => 'module', 2 => 'controller', 3 => 'format' ) )); 

Это мой url: http: //localhost/api/v1/tags.xml

«v1» указывает модуль. Теперь, перейдя к переключению контекста, если url имеет v1, он будет находиться в модуле TagsController модуля v1. Но если модуль в url равен v2, я получаю ошибку, такую ​​как:

Запрошенный URL /pt/public/index.php/api/v2/tags.xml не найден на этом сервере.

Я не мог понять, почему он взорвался. Это потому, что я поставил модуль по умолчанию как v1? Я не могу изменить модуль на основе URL.

И это мое дерево каталогов:

  • заявление
    • модули
      • v1
        • контроллеры
          • TagsController.php
      • v2
        • контроллеры
          • TagsController.php
  • библиотека

Моя доброта … я понял решение … имя класса контроллера в модуле v2 должно быть «V2_TagsController», а не только «TagsController». Слава богу, он работает сейчас 🙂 См. Имена классов для контроллеров ниже:

 - application - modules - v1 - controllers - TagsController.php (class TagsController) - v2 - controllers - TagsController.php (class V2_TagsController) - library