自分の仕事で多言語構造をサポートしたかったので、次の行を使用しました
$controller=Zend_Controller_Front::getInstance();
$router=$controller->getRouter();
$languageRouter=new Zend_Controller_Router_Route(":lang/:module/:controller/:action", array("lang"=>"en","module"=>"default","controller"=>"index","action"=>"index"),
array("lang"=>"[a-zA-Z]{2}"));
$router->addRoute("default",$languageRouter);
http:// localhost / zend / public / en lang paramをenに設定し、デフォルトモジュールを呼び出しますが、問題は、このhttp:// localhost / zend / public / en/anything のようなURLを使用するとモジュールではありませんが、それを防ぐ方法をデフォルトのモジュールに示していますか?
takeshinの回答後、この関数をbootstarpファイルに追加しましたが、今では思いどおりに機能します。
protected function _initRoutes()
{
$routeLang=new Zend_Controller_Router_Route(':lang',array('lang'=>'en'),array('lang'=>'[a-z]{2}'));
$front = Zend_Controller_Front::getInstance() /*$this->getResource('frontcontroller')*/;
$router = $front->getRouter();
$routeDefault=new Zend_Controller_Router_Route_Module(array(),$front->getDispatcher(),$front->getRequest());
$routeLangDefault=$routeLang->chain($routeDefault);
$router->addRoute('default',$routeLangDefault);
$router->addRoute('lang',$routeLang);
}