簡體   English   中英

成功登錄后的magento 404

[英]magento 404 after successful login

我的magento安裝有一個奇怪的問題。 我在安裝過程中將admin 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時,它可以工作。 那么這個問題有什么解決方案嗎? 任何幫助將不勝感激。 問候。

當我有自定義管理路由與多商店視圖時,我有這個問題

當我去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

和覆蓋預調度功能或者你這個觀察者adminhtml_controller_action_predispatch_start來設置重定向頁面

$this->_redirect( Mage::getSingleton('admin/session')->getUser()->getStartupPageUrl() );

謝謝

我通過重寫http://dev.loc/magento/myadmin/ {KO}解決了這個問題

http://dev.loc/magento/index.php/admin/myadmin/ {OK}

對於nginx:

rewrite ^/index.php/admin/myadmin/(.*)$ /index.php/myadmin last;
rewrite ^/myadmin.*$ /index.php/admin/myadmin$1 permanent;
rewrite ^/index.php/myadmin.*$ /index.php/admin/myadmin$1 permanent;
rewrite ^/admin/myadmin.*$ /index.php/admin/myadmin$1 permanent;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM