Magento 1.9.x - 在Prod服务器上的404错误但不在本地开发机器上

时间:2018-01-12 03:20:00

标签: magento redirect http-status-code-404 magento-1.9.3

在这里处理一个奇怪的问题。

我们已将Magento安装从1.9.0.1更新为1.9.3.6。不得不重新编写自定义模块的代码。一切都在我们的本地开发机器上运行得很好,这些机器是生产服务器的克隆:

Nginx,PHP 5.6.30,MySQL

当我们将修订版推向生产时,一切正常,管理面板显示Magento 1.9.3.6但是这个自定义模块(修改管理客户详细信息视图)会在提交表单后抛出404错误。

所有这一切对我们当地的开发都很好。

我们删除了缓存,重新编制了所有数据的索引,并检查了代码是否已正确传输。一切都与本地开发者匹配,但自定义模块在prod服务器上抛出404错误。

我的问题:

(1)知道这里发生了什么吗?

(2)由于404 Magento错误页面没有说明任何有用的调试信息,我们如何在prod服务器上调试路由?

感谢您的帮助!

控制器类位于\ app \ code \ local \ Test \ CustomCustomerFields \ controllers \ Adminhtml \ CustomCustomerFields \ IndexController.php:

class Test_CustomCustomerFields_Adminhtml_CustomCustomerFields_IndexController extends Mage_Adminhtml_Controller_Action {}

module config.xml:

...
<admin>
    <routers>
        <adminhtml>
          <args>
              <modules>
                  <customcustomerfields before="Mage_Adminhtml">Test_CustomCustomerFields_Adminhtml</customcustomerfields>
              </modules>
          </args>
        </adminhtml>
    </routers>
</admin>
...

2 个答案:

答案 0 :(得分:1)

原来是一个不影响Ubuntu(本地开发,Vagrant)的camelcase文件夹名称问题,因为自定义模块在那里工作得很好,但在CentOS(prod服务器)上,camelcase错误触发了一个不可读的文件路径,这又导致了404 ......

我通过\ app \ code \ core \ Mage \ Core \ Controller \ Varien \ Router \ Standard.php类调试了路由。

答案 1 :(得分:0)

class Test_CustomCustomerFields_Adminhtml_CustomCustomerFields_IndexController扩展Mage_Adminhtml_CustomcustomerfieldsController