通过管理面板访问模块设置时出现Magento 404错误

时间:2009-09-18 18:06:59

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

所以我下载了Magento免费博客扩展,但它只支持一个博客。 所以我复制了扩展,因为我在magento商店需要多个博客。我在扩展副本中更改了所有引用和调用,并能够将其作为单独的扩展安装。

然而当我想从管理面板创建新帖子时,它会给我一个Magento 404错误。

如果有人可以看看,让我知道我错过了什么,我将不胜感激。

请注意我使用两种环境进行测试:

  1. 使用PHP 5.2.6,MySQL 5和Apache 2.0.59通过MAMP / WAMP(适用于Mac和Windows的预打包LAMP桌面环境)本地安装Magento

  2. 使用PHP 5.2.10,MySQL 5.x和Apache 2.x的Web服务器

  3. 在我当地的MAMP / WAMP上,我可以毫无问题地创建博客。但是,当我从实时服务器测试它时,我不再能够创建新的博客帖子,并且重定向到创建帖子页面的管理页面会给我一个magento 404错误。

    我一直认为这可能与某些服务器设置有关,但我完全不确定,如果其他人可以为我调查,我会很感激。

    感谢。

    编程

1 个答案:

答案 0 :(得分:6)

首先是一个骂,然后是一些帮助,因为这就是StackOverflow如何滚动。除非你真的熟悉Magento惯例,否则你很可能没有改变正确的事情。

  1. 阅读Magento中的controller distach流程并尝试tracing its progress

  2. 所以,那读起来,你现在知道你的前面名字是“vblog_admin”。是否有加载此正面名称的任何页面?如果没有,请检查您的<路由器>您自定义模块的部分

  3. 您的控制器名称为“manage_vblog”,这意味着在自定义模块中,您应该在以下位置拥有控制器:ModuleName/controllers/Manage/Vblog.php

  4. 确保控制器就位后,请确保它上面有newAction方法。

  5. 如果上述任何步骤失败,magento将404给你。最后,在

    app/code/core/Mage/Core/Controller/Varien/Router/Standard.php
    

    搜索文字getControllerFileName。这是您的控制器获取其名称的位置,以及Magento决定是否有合法请求的系统的一般区域。

    更新:根据下面提供的文件(和私人通信),它看起来是导致问题的命名约定。 Magento对其驼峰案例命名惯例非常严格。

    VBlog 
    

    应该是

    Vblog
    

    在类和文件名的所有实例中。虽然PHP本身并不关心类名中的情况,但msot linux服务器的情况就是大概。因为这个,Magento找不到你的控制器类文件,这就是你得到404的原因。