我有一个旧的url '/report/details/‘,现在我想将这个url更改为'/customer_report/details’。控制器名为reportController,操作为detailsAction。
我设置了routes.ini并添加了以下内容:
routes.report.route = /customer_report/details/
routes.report.defaults.controller = report
routes.report.defaults.action = details在编辑routes.ini之后,如果我使用url‘/cutomer/details’,它将完美地工作。但是,如果我输入url '/report/details/',它仍然工作。
当url为/report/details时,我是否可以控制它自动重定向到/customer_report/details?
PS。我正在使用ZendFrameworkv1.12
发布于 2015-11-04 23:18:08
如果没有信息,很难回答你有什么ZF版本。ZFv1有像/:controller/:action这样的预定义路由,这就是为什么您的/report/details路由可能仍然有效的原因。您可以更改此默认行为,清除默认路由:
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$router->removeDefaultRoutes();
$router->addRoute(
'error',
new Zend_Controller_Router_Route (
'/customer_report/details/',
array (
'controller' => 'report',
'action' => 'details'
)
)
);如果要重定向用户,可以将逻辑移动到新的操作:
public function customerReportAction() {
// logic from reportAction()
}并在旧版本中添加http重定向:
public function reportAction() {
$this->_redirect('/customer_report/details/');
}https://stackoverflow.com/questions/33533843
复制相似问题