URL rewriting for Magento module

Jerome Dennis D picture Jerome Dennis D · Jan 22, 2011 · Viewed 8.7k times · Source

I have created a New Module in Magento and named it as "article". It has two Front end controllers index and article.

And in the article controller i have an action called "archives" to list the articles on the front end / website based on the archives. Everything is fine except the URL.

The Working URL right now is : [http://]mydemostore/article/article/archives/01/2011

What i actually need is http://mydemostore/article/archives/01/2011

I don't want to have an extra "article" (the controller name)

I know since my module name and controller name are same i am getting this. If i would have placed my actions inside the indexcontroller, i would have got this done. But it was not working.

So what i need right now is I don't want to move my actions from "article" to "index" controllers rather i just want to change

from

[http://]mydemostore/article/article/archives/01/2011 to

to

[http://]mydemostore/article/archives/01/2011

using Zend routing or basic PHP URL rewriting on .htaccess file.

Kindly help me how to get this done by using either of these two ways or both the ways.

Thanks a lot in advance for checking with my question !!!

Answer

clockworkgeek picture clockworkgeek · Jan 22, 2011

I've not done this myself, only read about it here, but here goes...

In you config.xml file:

<config>
    <global>
        <rewrite>
            <article_article_archives>
                <from><![CDATA[#^/article/archives/#]]></from>
                <to><![CDATA[/article/article/archives/]]></to>
            </article_article_archives>
        </rewrite>
    </global>
</config>

The node <article_article_archives> isn't strictly formed, it only needs to be unique from other rewrites.