SEO対策用のURLを作りたい。
My URL is: supplements.html?manufacturer=166
I want URL like: supplements/manufacturer/scivation.html
(scivation は id 166 のメーカーで、サプリメントはカテゴリであり、メーカーは属性です)
どんな助けでも大歓迎です。事前に感謝します。
SEO対策用のURLを作りたい。
My URL is: supplements.html?manufacturer=166
I want URL like: supplements/manufacturer/scivation.html
(scivation は id 166 のメーカーで、サプリメントはカテゴリであり、メーカーは属性です)
どんな助けでも大歓迎です。事前に感謝します。
「サプリメント」は (変化する) カテゴリであるため、ハードコーディングせずに記述規則を使用することはより困難になります。考えられる解決策の 1 つは、Mage::getModel('core/url_rewrite')
( example ) を使用してそれぞれのルートを作成することです (この方法を使用すると問題が発生する可能性があります)。
別の解決策は、URL形式を変更することです
/manufacturer/supplements/scivation.html
次に、カスタム モジュールを作成します。
config.xml
<global>
<rewrite>
<fancy_url>
<from><![CDATA[/manufacturer\/(.*)/(.*)/]]></from>
<to><![CDATA[manufacturer/index/processroute/manufacturername/$2/]]></to>
<complete>1</complete>
</fancy_url>
<rewrite>
</global>
<frontend>
<routers>
<tagseo>
<use>standard</use>
<args>
<frontName>customcategory</frontName>
</args>
</tagseo>
</routers>
class MageIgniter_Manufacturer_IndexController extends Mage_Core_Controller_Front_Action
{
public function processRoute(){
print_r($requestUri = Mage::app()->getRequest()->getRequestUri()); //supplements/scivation.html
print_r($this->getRequest()->getParam('manufacturername')); // scivation.html
print_r($this->getRequest())
// do you custom logic here base on about request path explode('/', trim($requestUri,'/'))
//lookup the attribute_id from attribute name
//if attribute_id found then try
//$this->_forward(string $action, [string|null $controller = null], [string|null $module = null], [ $params = null])
// to the catalog page
// else $this->_forward('defaultNoRoute');
}
...
続きを読む @