4

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

/customcategory

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

/customcategory/test/index

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

/customcategory/test-section/index

我知道如果我想/customcategory被连字符,我可以修改配置文件中的前端标签。但是我正在构建的站点将受益于带连字符的控制器路由,即/customcategory带有关键字的部分,我无法让它工作,也无法在谷歌上找到一个例子——这看起来很疯狂。

谢谢你的时间。

4

2 回答 2

2

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

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

配置文件

<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

于 2012-11-08T21:31:00.080 回答
1

据我所知,您不能在 url 中添加连字符以匹配文件名。如果您正在尝试获取文件夹结构,则可以添加更多路径。

例如,如果您想要:

Namespace/CustomCategory/controller/test/SectionController.php

你可以这样做:

/customcategory/test_section/index
于 2012-11-05T20:41:30.293 回答