Модуль моего проекта должен иметь свой собственный домен, поэтому я создал для него маршрут:
$portalurl = str_replace( 'http://', '', $config->domains->portal );
$hostnameRoute = new Zend_Controller_Router_Route_Hostname(
$portalurl,
array( 'module' => 'portal' )
);
$defaultroute = new Zend_Controller_Router_Route(
':controller/:action',
array(
'controller' => 'index',
'action' => 'index'
)
);
$contentroute = new Zend_Controller_Router_Route(
'page/:page',
array(
'controller'=> 'content',
'action' => 'show'
)
);
$router->addRoute( 'portalDefault', $hostnameRoute->chain($defaultroute) );
$router->addRoute( 'portalContent', $hostnameRoute->chain($contentroute) );
В моей тестовой системе мое приложение находится в подкаталоге типа / project / public, который прекрасно работает, когда я открываю модуль через домен, который я ввел в свой список хостов системы. domain.lan / проект / общественности. Теперь я хочу собрать URL через систему (перенаправление), и он собирает его без подкаталога.
$this->_redirect(
$this->view->url(array(
'action' => 'index',
'controller' => 'index')
),
array( 'prependBase' => false )
);
Да, я знаю, что самый простой способ решить эту проблему - это настроить vhost, но меня беспокоит, что я не могу найти другое решение, которое позволяет ему функционировать без vhost и устанавливать путь вручную в маршрутах.
Каков наилучший подход для этого?