取消设置Magento中模块设置的前缀名称

时间:2012-03-12 12:49:17

标签: php model-view-controller magento

Magento有一个非常好的MVC系统,模块可以注册他们的“前线名称”等。

不幸的是,如果您碰巧使用多个商店并使商店代码显示在URI中,则会导致同一页面的许多重复网址污染您的网站。它将有效地使模块在每个商店视图“root”和主magento root上可用。

所以我想摆脱模块为我创建的那些正面名称。我仍在使用模块提供的对象我只是不希望它使用它供应商的控制器(我构建了自己的块来加载相关数据)。

所以我的问题很简单,让我说社区代码池模块/ etc / config.xml中有这样的东西:

    <routers>
        <faq>
            <use>standard</use>
            <args>
                <module>Faq</module>
                <frontName>faq</frontName>
            </args>
        </faq>
    </routers>

如何在我的本地代码池中进行覆盖/设置,基本上取消/禁用此前缀,以便在调用时找不到它?

或者,当启用了在URI中显示代码的选项时,是否可以阻止在商店视图根上加载具有前名的控制器?

2 个答案:

答案 0 :(得分:0)

我建议你看看Magento中的core_url_rewrite表。您应该能够覆盖按模块在代码中设置的URL。它并非完全不确定,而是解决问题的一种方法。

答案 1 :(得分:0)

我不确定你的观点到底是什么。听起来你有SEO问题(提到dup.urls)

  1. 您可以选择 为自定义模块声明路由器
  2. 您可以启用规范网址,任何值得索引的内容(类别/产品/ cms)都会有正确的网址
  3. 您可以禁止使用robots.txt
  4. 访问这些网址

    如果做不到这一点,你可以采取激烈(并且看似毫无意义)的方法来取消注册路线。扩展......

    Mage_Core_Controller_Varien_Front
    

    允许您根据需要控制受保护的路线。