問(wèn)題描述
我目前正在嘗試使用 magento 生成自定義 url/路由,目前我已經(jīng)在本地模塊的 config.xml 中設(shè)置了默認(rèn)路由.
I am currently looking at trying to generate custom urls/routing using magento, currently I have set a default route in config.xml within the local module.
<frontend>
<routers>
<portfolios>
<use>standard</use>
<args>
<module>Custom_Portfolios</module>
<frontName>portfolios</frontName>
</args>
</portfolios>
</routers>
<default>
<router>portfolios</router>
</default>
</frontend>
這當(dāng)前適用于/portfolios/index/action/custom-string 的 url 路徑,這是 magento 默認(rèn)路由.我想要實(shí)現(xiàn)的是讓/portfolios/custom-string.html 我嘗試使用 mod_rewrite 規(guī)則但沒(méi)有成功,我找到了一些關(guān)于使用 .html 的自定義后綴的參考,我已將其添加到相同的 config.xml 文件.
This currently works with the url path of /portfolios/index/action/custom-string which is the magento default route. What I am trying to achieve is to have /portfolios/custom-string.html I have attempted to use a mod_rewrite rule with no success, I have found some references in relation to utilising a custom suffix of .html which I have added to the same config.xml file.
<default><portfolios><seo><portfolios_url_suffix>.html</portfolios_url_suffix></seo></portfolios></default>
我查看了與路由相關(guān)的 alan Storm 文檔,發(fā)現(xiàn)它僅與默認(rèn)路由路徑相關(guān),或者信息有點(diǎn)過(guò)時(shí).
I have looked at the alan storm docs in relation to routing and found it relevent to the default routing paths only or the information is a little out-dated.
您是否知道在 magento 中控制路由的最佳方法以及可能易于遵循和相關(guān)的教程?如果是這樣,請(qǐng)分享 :D 很多
Do you know the best method to control the routing within magento with possibly an easy to follow and relevent tutorial? if so please share :D many
推薦答案
實(shí)現(xiàn)此目的的方法是重寫 URL.事實(shí)上,您發(fā)現(xiàn)的后綴配置可能被 Mage_Catalog 用于創(chuàng)建它的重寫集.我是第一次接觸這個(gè)特殊的功能,所以這個(gè)片段應(yīng)該加一點(diǎn)鹽......
The way to do this is with an URL rewrite. In fact, the suffix config you found is probably used by Mage_Catalog to create it's sets of rewrites. I'm approaching this particular feature for the first time so this snippet should be taken with a pinch of salt...
// Creating a rewrite
/* @var $rewrite Mage_Core_Model_Url_Rewrite */
$rewrite = Mage::getModel('core/url_rewrite');
$rewrite->setStoreId($store_id)
->setIdPath('portfolios/'.$url_key)
->setRequestPath('portfolios/'.$url_key.'.html')
->setTargetPath('portfolios/index/action/id/'.$url_key)
->setIsSystem(true)
->save();
每個(gè)可能的路徑都需要一個(gè)新的重寫.
A new rewrite is needed for each possible path.
編輯;我添加了一個(gè) setIdPath
因?yàn)樗赡苁潜匾?
Edit; I've added a setIdPath
because it might be necessary.
這篇關(guān)于在 Magento 中生成自定義 URL的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!