我的项目的一个模块应该有它自己的域,所以我为它创建了一个路由:
$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/project/public。现在我想通过系统(重定向)组装一个 url,它在没有子目录的情况下组装它。
$this->_redirect(
$this->view->url(array(
'action' => 'index',
'controller' => 'index')
),
array( 'prependBase' => false )
);
是的,我知道解决它的最简单方法是配置一个虚拟主机,但它困扰我的是我找不到另一个解决方案,它允许它在没有虚拟主机的情况下运行并在路由中手动设置路径。
最好的方法是什么?