マルチストアビューを使用したカスタム管理ルーティングもある場合、この問題が発生します
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() );
ありがとう