1

Zend Framework 1.11 (site.com/module/controller/action) にモジュール ベースのアーキテクチャがあります。

デフォルトのモジュールを持つようにサイトをセットアップしました。そのため、モジュールをデフォルトとして持っていて、siteあなたが に行くとsite.com/something1/something2、実際には に行きますsite.com/site/something1/something2

私は同じことをさらに 1 レベル達成したいと考えてsite.com/somethingいますsite.com/site/index/something。私はリダイレクトについて話しているのではなく、単に再ルーティングについて話しているのです。

このようなことが可能でしょうか?

4

1 に答える 1

2

私が正しく理解していれば、それは可能です。Bootstrap に入れることができる例を次に示します。

protected function _initControllerDefaults()
{
    $this->bootstrap('frontcontroller');
    $front = Zend_Controller_Front::getInstance();

    // set default action in controllers to "something" instead of index
    $front->setDefaultAction('something');

    // You can also override the default controller from "index" to something else
    $front->setDefaultControllerName('default');
}

アクセスした URL に基づいてデフォルトのアクション名を動的にする必要がある場合は、カスタム ルートを探していると思います。その場合は、次を試してください。

protected function _initRoutes()
{
    $router = Zend_Controller_Front::getInstance()->getRouter();

    // Custom route:
    // - Matches  : site.com/foo or site.com/foo/
    // - Routes to: site.com/site/index/foo

    $route = new Zend_Controller_Router_Route_Regex(
            '^(\w+)\/?$',
            array(
                'module'     => 'site',
                'controller' => 'index',
            ),
            array(1 => 'action')
    );
    $router->addRoute('actions', $route);
}
于 2012-08-04T19:13:55.877 に答える