URL rewrite is something that is not easy to understand. As a developer, you may clearly know the structure, process and others of URL Rewrite? I have made several attempts to get this job done, and today; I will share you materials of URL rewrite to fully exploit it in Magento for the best Search Engine exposure.

I. URL structure/processing in Magento.
– URL structure in Magento
A link in Magento has format as below:
https://user:password@host:443/base_path/[base_script][storeview_path]route_name/controller_name/action_name/param1/value1?query_param=query_value#fragment

  • user:password@host:443/base_path/[base_script]: the path to the Script file which runs Magento. Usually, it is an index.php file.
  • [storeview_path]: store view code will display here. According to the configuration, this storeview_path is inserted into the link or not.
  • route_name/controller_name/action_name: the path to the action which is run by the request of this link.
  • param1/value1: name and value of the parameter for the request that is provided by the link.
  • ?query_param=query_value#fragment: query

– URL processing in Magento
With the link as same as above, when you request it will run into the index.php file firstly, and then the following files:

  • app/Mage.php (Mage::app()->run())
  • app/code/core/Mage/Core/Model/App.php
  • Init and Dispatch controller ($this->getFrontController()->dispatch());
  • app/code/core/Mage/Core/Controller/Varien/Front.php
  • Chose the router match for dispatch ($router->match($this->getRequest()))

• app/code/core/Mage/Core/Controller/Varien/Router/Admin.php
• app/code/core/Mage/Core/Controller/Varien/Router/Standard.php
• …
• app/code/core/Mage/Core/Controller/Varien/Router/Default.php

  • app/code/core/Mage/Core/Controller/Varien/Action.php

• Call Action function (Example: indexAction())

  • Custom Controller/Action
  • (app/code/core/Mage/Core/Controller/Response/Http.php)

The link process is primarily conducted in routers (the detail is the function match($request). This function will analyze URL to find out the action to call. When discovering the action, the system will leave the control authority to this action. After carrying out, the action will return the control authority to the system. And then the system returns the response content of that link.
II. URL rewrite process.
– The URL rewrite process takes place in 3 moments:

  • Core URL rewrite: from the request path, the system will find target_path in CSDL and rewrite the request path.
  • Module configure URL rewrite: is the controller rewrite in the system. From the configuration, the system will rewrite the link.
  • Router URL rewrite: Use the router to analyze and rewrite the link. A typical example: the system uses this router to rewrite the link for CMS page (use events to add routers).

III. Rewrite a catalog/ product/ view to a different URL.
– Rewriting catalog/product/view to another URL is used in the Core URL Rewrite process. The link of rewriting catalog/product/view will be stored in the core_url_rewrite table.
Hope this article is useful for you! I really want to get your experience and share of this issue. So please feel free to leave comments here…

Author

Why Magestore? We believe in building a meaningful & long-term relationship with you.

2 Comments

  1. By the way, this example of xml url rewrite is old and complicated one 🙂

    New way since magento 1.3 should be something similar to this (this is taken from Magento Wiki):

    MyNameSpace_MyModule

    • Hello Rauno,
      I’ve checked the custom code in the Magento version 1.5.1.0 and it’s working. Thus Magento certification is based on Magento 1.5.1.0.
      Let me know if you have any other questions.
      Have a nice new week!

Write A Comment