【问题标题】:Magento: Rewriting URLs dynamically depending on conditions?Magento:根据条件动态重写 URL?
【发布时间】:2012-07-19 17:15:24
【问题描述】:

我有这个问题:

我有一个如下所示的默认路由:.../myapp/index.php/config/configuration/test/product_id/51

如您所见,这会导致 ConfigurationController 和 testAction 函数。那很好,它应该保持这种状态。我想要更改的是 URL 的“配置部分”。

所以不是

http://somedomain.de/myapp/index.php/config/configuration/test/product_id/51

我想要

http://somedomain.de/myapp/index.php/家具/configuration/test/product_id/51

指向相同的位置(ConfigurationController 和那里的 testAction 函数)。更改的部分不是静态的,它是产品的属性集名称。因此,除了家具,它可以是电脑或其他东西。我已经可以从产品中得到这个,所以我只需要重写的东西。

想法如何做到这一点?谢谢!

【问题讨论】:

    标签: magento url-rewriting controller


    【解决方案1】:

    您可以使用路由器,就像 Magento 为 CMS 页面所做的那样(在本文的第二部分中解释:http://alanstorm.com/magento_dispatch_admin_cms_default_routers

    【讨论】:

    • 谢谢,第二部分从哪里开始?
    • 它以The CMS Router Object 开头。同时,您可以从Mage_Cms 核心模块及其Mage_Cms_Controller_Router 类中获得灵感
    • 路由器工作后会显示哪个URL?包含“配置”的那个?
    • 这将取决于您如何编写自己的路由器,但是是的,如果这是您想要重定向到的操作,那将是可能的
    【解决方案2】:

    在模块的config.xml 中,您可以更改frontend/routers/your_router/args/frontName,这将允许您使用不同的名称(如家具)。如果是 adminhtml 控制器,则必须使用 adminhtml 路由器,但其余部分相同。

    【讨论】:

    • 是的,我知道我可以在那里改变它,但它必须是动态的,你知道吗?那里有家具,除了家具,其他任何东西都不能用。我必须使它与不止一个 frontName 一起工作。
    猜你喜欢
    • 2012-09-09
    • 2021-04-09
    • 2014-01-25
    • 2021-09-15
    • 2013-01-07
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多