我写了一个自定义模块来显示一个类别中的产品。
指数行动:
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
答案 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>