我迁移了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>
答案 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.xml
或etc/system.xml
中定义了ACL资源:
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}
所以你需要去的是/app/code/local/Src/Core/controllers/Adminhtml/
,任何php文件都需要添加这个新功能。希望这可以帮助。