【问题标题】:Magento Router Url - Need Hyphnated Path NameMagento 路由器 URL - 需要连字符路径名
【发布时间】:2012-11-23 09:07:06
【问题描述】:

假设我使用自定义控制器的 url 路径/前端名称为

/customcategory

好吧,显然如果我有一个名为“TestController.php”的控制器文件和 indexAction url 路径是

/customcategory/test/index

我想弄清楚的是如何重命名测试控制器,或者修改配置 xml 文件,这样我就可以从控制器文件中获得一个连字符的 url,例如

/customcategory/test-section/index

我知道如果我想让/customcategory 被连字符,我可以修改配置文件中的frontend 标签。但是我正在构建的网站将受益于带连字符的控制器路由,/customcategory 之后带有关键字的部分,我无法使其工作,也无法在谷歌上找到示例 - 看起来很疯狂。

感谢您的宝贵时间。

【问题讨论】:

  • 您是否尝试使用具有以下结构的网址... xyz.com/customcategory/what-ever-hyphnated-path-i-want.html ... xyz.com/customcategory/ hyphnate-path-2.html ...等?
  • 是的。因此,通过这种方式,无论我在自定义控制器中使用什么控制器文件,我都可以完全控制该路径。
  • 看看“产品标签”部分,让我知道这是否是您想要完成的目标contempospace.com/bedroom-furniture/wardrobe-closets/…
  • 是的,只要它来自我的自定义控制器而不是来自标准类别 url。谢谢。
  • 那不是分类网址.. 是产品标签模块的自定义

标签: magento path controller router


【解决方案1】:

您可以在自定义模块中使用全局重写来尝试执行此操作。您可以将所有传入的/customcategory/* 请求传递给特定的控制器操作。但是您必须管理自己的路线(基于您的 url 路径的深度)。

例如www.MageIgniter.com/customcategory/path1/path2

config.xml

<global>
    <rewrite>
      <fancy_url>
            <from><![CDATA[/customcategory\/(.*)/]]></from>
            <to><![CDATA[customcategory/index/processroute/tagname/$1/]]></to>
            <complete>1</complete>
       </fancy_url>
    <rewrite>
</global>
<frontend>
    <routers>
        <tagseo>
            <use>standard</use>
            <args>
                <frontName>customcategory</frontName>
            </args>
        </tagseo>
    </routers>


class MageIgniter_Customcategory_IndexController extends Mage_Core_Controller_Front_Action
{
     public function processRoute(){
           print_r($requestUri = Mage::app()->getRequest()->getRequestUri()); //path1/path2
           print_r($this->getRequest()->getParam('tagname')); // path1
           print_r($this->getRequest())
           // do you custom logic here base on about request path explode('/', trim($requestUri,'/'))

     }
     ...

有关工作示例,请参阅“产品标签”部分 @http://www.contempospace.com/bedroom-furniture/wardrobe-closets/custom-closet-systems/isa-closet-system-shelves-hanging-walk-in-reach-in-closet.html

【讨论】:

  • 非常有趣。这个周末我会试试这个。对此我感激不尽。
【解决方案2】:

据我所知,您不能在 url 中添加连字符以匹配文件名。如果你想获得一个文件夹结构,你可以添加更多的路径。

例如,如果你想要:

Namespace/CustomCategory/controller/test/SectionController.php

你可以这样做:

/customcategory/test_section/index

【讨论】:

  • 有趣。这很好,只需在控制器文件夹中添加一个子目录即可。好的,所以它是下划线而不是连字符。很高兴知道我能够确认 Magento 允许使用连字符是不自然的。我不确定我是否只是错过了一些“技巧”来使它工作,而不是 .htaccess 魔法。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-05
  • 1970-01-01
  • 2017-12-16
  • 2014-05-10
  • 2017-06-26
  • 1970-01-01
相关资源
最近更新 更多