Magento自定义路线/控制器转到404


Magento Custom Route/Controller Going to 404

早上好!我正试图创建一个Magento模块,但我在模块的config.xml中定义的路由导致了一个404页面。

我知道这个问题已经出现过无数次了,我整晚都在阅读我能找到的关于这个主题的每一个SO回复。

以下是我所做的:

  1. 清除了var/cache&var/session文件夹
  2. 运行compiler.php--clear、compiler.php--disable和compiler.php--compile
  3. 已清除&刷新管理面板中的缓存和缓存存储,从后端和命令行重新索引
  4. 创建了一个新的测试包/模块,与我以前使用的完全不同。它显示在系统>>配置>>高级中
  5. 已验证Magento没有将商店代码附加到URL
  6. 将我的代码简化到controller.php的indexAction()函数中的一个echo语句
  7. 尝试导航到mydomain.com/customroute和mydomain.com/index.php/customroute、mydomain.com/customerroute/index/index和mydomaincom/index.php/index及其所有可能的变体
  8. 多次重复步骤1-8。xD

下面是一些屏幕截图供参考。提前谢谢你——如果有人知道如何克服这一点,那将是一个彻底的救命稻草。谢谢

  • https://i.stack.imgur.com/fL8VF.png"config.xml"
  • https://i.stack.imgur.com/DHH9U.png"IndexController.php"

编辑:

以下是app/etc/modules/Volverrine_Taurine.xml中的代码:

<?xml version="1.0"?>
<config>
    <modules>
        <Wolverine_Taurine>
            <active>true</active>
            <codePool>local</codePool>
        </Wolverine_Taurine>
    </modules>
</config>

Wolverine/Taurine/etc/config.xml:

<?xml version="1.0"?>
 <config>
    <modules>
        <Wolverine_Taurine>
            <version>1.0</version>
        </Wolverine_Taurine>
    </modules>
    <frontend>
        <routers>
            <wolverine_taurine>
                <use>standard</use>
                <args>
                    <module>Wolverine_Taurine</module>
                    <frontName>taurine</frontName>
                </args>
            </wolverine_taurine>
        </routers>
    </frontend>
 </config>

Wolverine/Taurine/controllers/IndexController.php:

<?php
class Wolverine_Taurine_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        echo "I look incredible.";
    }
}

我已经使用了您的模块,它非常适合我。如果您使用的是linux平台,请对所有文件和文件夹给予适当的权限。我认为这是由于文件/文件夹权限造成的。将Magento基本目录中所有文件的Linux权限更改为拥有用户(您)可读写。将文件权限设置为664,将文件夹权限设置为775。775的文件也可以。为media和var设置777,每个人只需要写入2个文件夹。

我遇到了同样的问题,但解决方案不同。在我的案例中,这是配置"问题"——以前的开发人员在app/etc/local.xml中设置了<disable_local_modules>true</disable_local_modules>,在app'design'frontend'default'theme392'template'catalog'product'view.phtml中设置了硬编码的Excellence_Ajax前端部分,而不是使用模块的模板(或者也禁用了本地模块,因此无法正常工作)。最后,它使用ajax(硬编码javascript)进行请求,但由于禁用了模块而没有被路由。

我按照这里的描述调试它。我读了日志,发现adminstandard路由器中都没有找到ajax模块,所以我深入挖掘,看看模块的配置是否已加载。我在loadModulesConfiguration()app'code'core'Mage'Core'Model'Config.php中又添加了一个Mage::log(),这是我在项目中搜索"config.xml"后发现的,并检查了$disableLocalModules的值。瞧。。如此简单却又如此艰难;)