Magento控制器路由路由到控制器的noRouteAction

mas*_*mas 3 magento

我正在构建一个控制器,当我调用一个Action时,我得到一个404错误(上周一切正常!).我正在使用以下方法调用该操作:

http://www.website.com/route/controllername/actionname

例如:

http://www.website.com/abcdef/test/echo

我调查了这个问题(使用Mage :: log('..'))并发现控制器正在加载.控制器的名字也很好.进一步的调查显示我的控制器内的noRouteAction被调用.

即我的控制器包含:

public function noRouteAction() {
  echo "noRoute Action";
}

public function echoAction() {
  echo "Echo Action";
}
Run Code Online (Sandbox Code Playgroud)

当我打电话给http://www.website.com/abcdef/test/echo时,我得到了"noRoute Action".

为什么不调用echoAction?


编辑:

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Abcdef_Web>
            <version>1.0.0</version>
        </Abcdef_Web>
    </modules>
    <global>
        <helpers>
            <abcdef>
                <class>Abcdef_Web_Helper</class>
            </abcdef>
        </helpers>
        <blocks>
             <abcdef>
                <class>Abcdef_Web_Block</class>
             </abcdef>
        </blocks>
    </global>
    <frontend>
        <routers>
            <abcdef>
                <use>standard</use>
                <args>
                    <module>Abcdef_Web</module>
                    <frontName>abcdef</frontName>
                </args>
            </abcdef>
        </routers>   
        <layout>
            <updates>
                <abcdef>
                    <file>abcdef.xml</file>
                </abcdef>
            </updates>
        </layout>
    </frontend>    

</config>
Run Code Online (Sandbox Code Playgroud)

控制器类文件:(TestController.php)

<?php

class Abcdef_Web_TestController extends Mage_Core_Controller_Front_Action {

  public function noRouteAction() {
    echo "noRoute Action";
  }

  public function echoAction() {
    echo "Echo Action";
  }

}

?>
Run Code Online (Sandbox Code Playgroud)

mas*_*mas 6

好的发现了问题!!!!

似乎"将商店代码添加到网址"设置为是,因此Magento期待:

http://www.website.com/storecode/abcdef/test/echo

而不是:

http://www.website.com/abcdef/test/echo

对于那些有同样问题的人.这可以通过以下方式禁用:

系统/配置/常规/网络/网址选项/将商店代码添加到网址

注意:

我不记得将此选项设置为是.我看到一些报道说这个设置可能会自动更改(4人报告):

http://www.magentocommerce.com/boards/viewthread/192613/