Magento 1.9.x - Prod 服务器上出现 404 错误,但本地开发机器上没有

Magento 1.9.x - 404 Errors on Prod Server But Not On Local Dev Machine

我们已将 Magento 安装从 1.9.0.1 更新到 1.9.3.6。不得不重新编码自定义模块。在我们的本地开发机器上一切正常,它们是生产服务器的克隆:

Nginx,PHP5.6.30,MySQL

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

所有这些在我们的本地开发上都运行良好。

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

我的问题:

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

  2. 既然Magento的404错误页面没有说明任何有用的调试信息,我们如何调试生产服务器上的路由?


controller class located at \app\code\local\Test\CustomCustomerFields\controllers\Adminhtml\CustomCustomerFields\IndexController.php:

class Test_CustomCustomerFields_Adminhtml_CustomCustomerFields_IndexController extends Mage_Adminhtml_Controller_Action {}

模块config.xml:

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

class Test_CustomCustomerFields_Adminhtml_CustomCustomerFields_IndexController 扩展 Mage_Adminhtml_CustomcustomerfieldsController

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

我通过 \app\code\core\Mage\Core\Controller\Varien\Router\Standard.php class.

调试了路由