从Magento中的自定义模块的url中删除控制器名称

时间:2015-03-05 09:46:43

标签: php magento url-rewriting

我创建了自己的模块。在那,我使用了IndexController。所以我的网址看起来像http://192.168.1.25/upload/index.php/capsync/index/api

我希望缩短http://192.168.1.25/upload/index.php/capsync/api等网址。

我想删除控制器名称。我试过config.xml文件,但它显示404错误。我不知道如何解决这个问题。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

尝试Magento重写功能.. 打开config.xml并添加以下代码。它会生成网址http://192.168.1.25/module/index/index/id/5 - >这样http://192.168.1.25/module/id/5。根据您的需要更改规则。

<global>
<rewrite>
<fancy_url>
        <from><![CDATA[/module\/(.*)/]]></from>
        <to><![CDATA[module/index/index/id/$1/]]></to>
            <complete>1</complete>
</fancy_url>
</rewrite>
 ...

答案 1 :(得分:0)

最常见的解决方案是将端点信息划分为不同的控制器文件。在您的示例中,您可以将名称从IndexController.php更改为ApiController.php,将方法名称从ApiAction()更改为IndexAction()

答案 2 :(得分:0)

对我有用的代码如下。

<global>
<rewrite>
<fancy_url> 
<from><![CDATA[/capsync\/(.*)/]]></from>
<to><![CDATA[/capsync/index/$1/]]></to>
<complete>1</complete>
</fancy_url>
</rewrite>