当我也有带有多商店视图的自定义管理员路由时,我遇到了这个问题
我去http://dev.loc/magento/myadmin/时遇到了问题 {登录后我有 404 }
但是如果我使用http://dev.loc/magento/storeview/myadmin/ {这很好用}
调试后我发现在 \app\code\core\Mage\Adminhtml\Controller\Action.php
/**
* Controller predispatch method
*
* @return Mage_Adminhtml_Controller_Action
*/
public function preDispatch()
{
.......
if (!$_isValidFormKey || !$_isValidSecretKey) {
$this->setFlag('', self::FLAG_NO_DISPATCH, true);
$this->setFlag('', self::FLAG_NO_POST_DISPATCH, true);
if ($this->getRequest()->getQuery('isAjax', false) || $this->getRequest()->getQuery('ajax', false)) {
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode(array(
'error' => true,
'message' => $_keyErrorMsg
)));
} else {
$this->_redirect( Mage::getSingleton('admin/session')->getUser()->getStartupPageUrl() );
}
return $this;
}
当您成功登录时,此 IF 条件会产生 false,因此在成功登录后设置重定向的语句不会运行
$this->_redirect( Mage::getSingleton('admin/session')->getUser()->getStartupPageUrl() );
所以你可以扩展 Mage_Adminhtml_Controller_Action
并覆盖 Pre-dispatch 函数或者你这个观察者adminhtml_controller_action_predispatch_start
来设置重定向页面
$this->_redirect( Mage::getSingleton('admin/session')->getUser()->getStartupPageUrl() );
谢谢