4

magento のインストールで奇妙な問題が発生しています。インストール中に管理者の URL を myadmin に設定しました。私の local.xml ファイルでは、admin の frontName は次のようになっています。

  <admin>
        <routers>
            <adminhtml>
                <args>
                    <frontName><![CDATA[myadmin]]></frontName>
                </args>
            </adminhtml>
        </routers>
    </admin>

ログインに成功すると、次の場所にリダイレクトされます

[http://127.0.0.1/index.php/admin/myadmin/index/noRoute/key/53c3c0bf6b77fb838f1d363c24443483/]

ダッシュボードのリンクをクリックすると機能します。myadmin を admin に変更すると動作します。この問題の解決策はありますか? どんな助けでも大歓迎です。よろしく。

4

2 に答える 2

2

マルチストアビューを使用したカスタム管理ルーティングもある場合、この問題が発生します

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() );

ありがとう

于 2012-09-02T14:26:10.473 に答える