Magento 404管理模块1.9.2.2

时间:2016-06-23 22:29:00

标签: magento module http-status-code-404 admin

我迁移了magento 1.9.2.2并且几个模块在管理员中停止工作,显示404错误。 我意识到URL没有显示管理员的路径。

取代(www.site.com/index.php/shop/module)。 正在展示这个(www.site.com/index.php/module。)

这样的设置:

app / code / co ... config.xml

<admin>
    <routers>
        <Src_Core>
            <use>admin</use>
            <args>
                <module>Src_Core</module>
                <frontName>srccore</frontName>
            </args>
        </Src_Core>
    </routers>
</admin>

app / code / local / ... config.xml

<admin>
    <routers>
        <Query_Src>
            <use>admin</use>
            <args>
                <module>Query_Src</module>
                <frontName>querysrcadmin</frontName>
            </args>
        </Query_Src>
    </routers>
</admin>

1 个答案:

答案 0 :(得分:0)

如果此问题与Magento升级有关,则问题是由于最近使许多模块无法使用的安全补丁。这就是说,它与在Magento管理员中更新的ACL或权限限制有关。

当访问管理面板内部的控制器,例如/shop/module不包含核心控制器路径,即/admin/shop/module时,如果不修改扩展名,它将无法访问该路由。大多数扩展程序提供商更新了他们的扩展以纠正此问题。但是,如果这是自定义代码,我将在下面解释此修复程序。

原因是Mage_Adminhtml_Controller_Action::_isAllowed()的默认返回值已从true更改为Mage::getSingleton('admin/session')->isAllowed('admin')。由于不使用ACL而未在其管理控制器中覆盖此方法的扩展,现在需要“ALL”权限。

唯一的解决方案是修补扩展并将此方法添加到其所有管理控制器:第一个选项将解决问题,但如果受限制的管理员权限是此模块的要求,则无法解决问题。

protected function _isAllowed()
{
    return true;
}

如果他们在etc/adminhtml.xmletc/system.xml中定义了ACL资源:

protected function _isAllowed()
{
    return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}

所以你需要去的是/app/code/local/Src/Core/controllers/Adminhtml/,任何php文件都需要添加这个新功能。希望这可以帮助。

罗伯特