2016-07-02 5 views
0

Я установил приложение скелета zend и отлично работает, пока не добавлю к нему несколько модулей. Проблема заключается в настройках виртуальных хостов. Сценарий выглядит следующим образом:Виртуальный хост с несколькими модулями zend

У меня есть два сайта: cms.localhost и site.localhost. Оба этих виртуальных хоста указываются на одну и ту же общую папку, однако я хочу, чтобы каждый из них использовал свои соответствующие модули. Есть ли директива виртуального хоста, которую я могу использовать, чтобы сообщить cms.localhost об использовании модуля Cms и site.localhost для использования модуля Site, который у меня установлен в моем проекте zend?

ответ

0

Для достижения этой цели вы, вероятно, можете использовать тип маршрута имени хоста. Вы можете прочитать на нем here in the documentation. Ниже приведен пример для случая, чтобы вы начали:

'router' => array(
    'routes' => array(
     'cms' => array(
      'type' => 'hostname', 
      'options' => array(
       'route' => 'cms.localhost', 
       'defaults' => array(
        '__NAMESPACE__' => 'Cms\Controller', 
        'controller' => 'Index', 
        'action' => 'index', 
       ) 
      ), 
      'may_terminate' => true, 
      'child_routes' => array(
       // your cms child routes 
      ) 
     ), 
     'site' => array(
      'type' => 'hostname', 
      'options' => array(
       'route' => 'site.localhost', 
       'defaults' => array(
        '__NAMESPACE__' => 'Site\Controller', 
        'controller' => 'Index', 
        'action' => 'index', 
       ) 
      ), 
      'may_terminate' => true, 
      'child_routes' => array(
       // your site child routes 
      ) 
     ) 
    ) 
), 

В этом примере я использовал опцию '__NAMESPACE__' установить пространство имен по умолчанию для соответствующих имен хостов.

+0

@CraigStandish Я обновил свой ответ, я забыл обернуть его в массив с ключевыми опциями '' ... – Wilt