我正在编写一个Zend Framework应用程序并且它不是什么大问题,但我无法弄清楚(甚至在谷歌搜索之后)如何从url中删除/ index /
所以我目前有这个
http://myapplication.local/index/home
当我真的想要
时http://myapplication.local/home
我理解可能可以通过.htaccess执行此操作吗?
答案 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