Если у вас есть конечный набор значений идентификаторов, вы можете создать равное количество правил перезаписи, например, . Идея состоит в том, чтобы сопоставить (т. Е. Один к одному) каждый возможный URL-адрес с сокращенной формой.
Однако, поскольку количество клиентов находится вне вашего контроля, может быть лучше использовать устаревшую XML-переписку, как описано в Magento Wiki .
<config>
...
<global>
<rewrite>
<vietean_catalog_product_offer>
<from><![CDATA[#^offer/#]]></from>
<to>catalog/product/offer/</to>
</vietean_catalog_product_offer>
</rewrite>
</global>
</config>
Если это не сработает, третий вариант - создать URL-адреса, такие как index.php/offer?id=1&cid=100
, что не так красиво. URL будет затем переведен в offer/index/index
. Дайте существующему маршрутизатору имя offer
, назовите контроллер IndexController
и действие indexAction
.
<config>
...
<frontend>
<routers>
<vietean_example> <!-- This tag can be any unique value -->
<use>standard</use> <!-- standard because it's the frontend -->
<args>
<module>Vietean_Example</module>
<frontName>offer</frontName> <!-- First part of URLs -->
</args>
</vietean_example>
</routers>
</frontend>
</config>
Контроллер может обращаться к параметрам URL точно так же, как и раньше;
$id = $this->getRequest()->get('id');
$cid = $this->getRequest()->get('cid');