Magento Url重写类别

时间:2014-05-19 07:00:40

标签: php magento

我写了一个自定义模块来显示一个类别中的产品。

指数行动:

public function indexAction() {
    $categoryId = $this->getRequest()->getParam('id');
    $_category = Mage::getModel('catalog/category')->load($categoryId);
    $products = Mage::getResourceModel('catalog/product_collection')
        ->addCategoryFilter($_category)
        ->addAttributeToSelect('*');
    foreach ($products as $productModel) {
        $price = number_format($productModel->getPrice(), 2, '.', '');
        $formattedPrice = Mage::helper('core')->currency($price, true, false);
        echo "<br>" .  $productModel->getName() . ' ' . $price;
    }

}

网址:category/index/index/id/5 其中5是我需要传递的类别ID。

但是,我想将网址更改为category/id/5

这是通过Url Rewrite完成的吗?

我在URL Rewrite Management中添加了这个: 类型:自定义 ID路径:类别/索引/索引 请求路径:类别/索引/索引 目标路径:类别

哪个不起作用。

Magento版本:1.8 CE

1 个答案:

答案 0 :(得分:1)

您可以使用htaccess:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ %1 [R=301,L]

在模块的config.xml中定义路由的工作方式如下:

<config>
    <!-- ... -->    
    <frontend>
        <routers>
            <calculator>
                <use>standard</use>
                <args>
                    <module>CompanyName_ModuleName</module>
                    <frontName>desired/router/path</frontName>
                </args>
            </calculator>
        </routers>
    </frontend> 
    <!-- ... -->    
</config>