Zend FW 1.9.2 を使用しています。デフォルト ルートを無効にして、独自のルートを提供したいと考えています。デフォルトの /:controller/:action ルーティングは本当に嫌いです。
アイデアは、init でルートを挿入することです。要求が挿入されたルートの 1 つにルーティングできない場合は、エラー コントローラーに転送する必要があります。(デフォルトで登録されている Zend_Controller_Plugin_ErrorHandler を使用)
$router->removeDefaultRoutes(); でデフォルト ルートを無効にするまで、これはすべて正常に機能します。これを行うと、エラー コントローラーはルーティングされていない要求をエラー コントローラーにルーティングしなくなります。代わりに、ルーティングされていないすべてのリクエストをデフォルト コントローラの indexAction にルーティングします。
デフォルトの /:controller/:action ルーティングを無効にして、ルートエラー処理を保持する方法を知っている人はいますか?
基本的に、これは私がしていることです:
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$router->removeDefaultRoutes(); // <-- when commented, errorhandling works as expected
$route = new Zend_Controller_Router_Route_Static(
'',
array('controller' => 'content', 'action' => 'home')
);
$router->addRoute('home', $route);