网址中的Zend Framework索引

时间:2012-01-19 20:04:37

标签: php zend-framework

我正在编写一个Zend Framework应用程序并且它不是什么大问题,但我无法弄清楚(甚至在谷歌搜索之后)如何从url中删除/ index /

所以我目前有这个

http://myapplication.local/index/home

当我真的想要

http://myapplication.local/home

我理解可能可以通过.htaccess执行此操作吗?

2 个答案:

答案 0 :(得分:4)

出现此问题是因为Zend默认使用控制器/操作URL(这是默认路由)。由于您的根控制器为IndexController且操作为IndexController::homeAction,因此可通过index/home访问。

执行所需操作的最简单方法是将路由添加到application.ini,如下所示:

resources.router.routes.home_route_or_any_name.route = "home"
resources.router.routes.home_route_or_any_name.defaults.module = "default"
resources.router.routes.home_route_or_any_name.defaults.controller = "index"
resources.router.routes.home_route_or_any_name.defaults.action = "home"

您可以将home_route_or_any_name更改为您想要的任何内容。您还可以添加许多路线定义以满足您的需求。

有关更多信息,请参阅Zend Framework Documentation

答案 1 :(得分:0)

你可以在bootstrap.php

中试试
/**
 * Setup Routig. 
 * Now all calls are send to indexController like
 * URL/ACTION-1
 * URL/ACTION-2
 *
 * @return void
 **/
protected function _initRouters()
{
    $router = Zend_Controller_Front::getInstance()->getRouter();

    $route = new Zend_Controller_Router_Route(
        ':action/*',
        array(
            'controller' => 'index',
            'action' => 'index'
        )
    );        

    $router->addRoute('default', $route);
}

我将从indexController生成的所有动作中删除索引 OR
在application.ini

routes.index.type = "Zend_Controller_Router_Route"
routes.index.route = "/"
routes.index.defaults.module = "default"
routes.index.defaults.controller = "index"
routes.index.defaults.action = "index"

有关路由的详细信息,请阅读here