Magento控制器处理任何操作

时间:2014-04-02 01:02:26

标签: magento

我创建了一个自定义magento模块,通过点击mysite.com/browse加载。

我需要能够在/ browse之后加载索引而不管任何内容。例如:

mysite.com/browse/cat 
mysite.com/browse/cat/car/jump
mysite.com/browse/bob
- would all load the index of browse

我已经尝试过使用htaccess文件进行重写但是Magento的路由导致了那里的问题......如果某个动作不是,那么我可以告诉我的模块加载索引吗?找到而不是渲染404?

2 个答案:

答案 0 :(得分:0)

又快又脏:

在模块控制器覆盖方法hasAction

 public function hasAction($action)
 {
     if(!method_exists($this, $this->getActionMethodName($action))) {
         $this->_forward('*/*/index');
     } else {
         return true;
     }
 }

答案 1 :(得分:0)

基于这个article我最终在模块config.xml中定义了一个重写,它在浏览之后获取了所有内容并将其传递给控制器​​的索引。

<rewrite>
    <browse_index_index>
        <from><![CDATA[/browse\/(.*)/]]></from>
        <to><![CDATA[browse/index/index/$1/]]></to>
        <complete>1</complete>
    </browse_index_index>
</rewrite>