Magento 自定义管理模块在补丁 5994 后给出 404

Magento custom admin module gives 404 after patch 5994

我已经在 Magento 1.9.0.1 CE 上成功应用了补丁 5994。 现在我不能调用我的自定义模块。所有这些都给出错误“404 not found”。 核心模块工作正常,但所有地雷都没有。 我认为路由系统有一些修改,在此补丁之前,magento 引擎能够以某种方式发送我的请求,但现在他不能。 有没有人知道这个补丁中路由的修改在哪里?

再说一次:自定义模块在补丁之前工作正常。补丁后他们进入 404。

谢谢

@Horvath 我也遇到了同样的问题并找到了解决方法,要解决此问题,您需要按照以下步骤操作。

  1. 更改模块的 config.xml 它应该像这样配置。

    <admin>
     <routers>
       <adminhtml>
           <args>
              <modules>
                  <syncengine  before="Mage_Adminhtml">Yourmodule_Syncengine_Adminhtml</syncengine>
              </modules>
           </args>
       </adminhtml>
     </routers>
    

  2. 如果您在管理端创建了一些菜单,请在模块的 etc\adminhtml.xml 中进行更改。

    <syncengines module="syncengine">
      <title>Sync</title>
      <sort_order>20</sort_order>
      <children>
        <items module="syncengine">
          <title>Manage Uploads</title>
          <sort_order>0</sort_order>
          <action>adminhtml/syncengine</action>
        </items>
      </children>
    </syncengines>
    

(之前动作节点的变化是<action>syncengine/adminhtml_syncengine</action>

请注意,您需要对所有儿童项进行此更改。

  1. 在布局文件中进行更改app/design/adminhtml/default/default/layout/yourmodulelayout。xml

之前是<syncengine_adminhtml_synyengine_index>

因此删除xml

中所有节点中的所有syncengine_
  1. 最后,如果您在 Block/adminhtml 中使用过 getUrl('suncengine/adminhtml_/') 的地方添加了任何按钮,请将其替换为 getUrl('adminhtml/')