In order to direct requests for /sitemap.xml to a custom controller and action in your Zend Framework application simply add the following in your application.ini or alternative config file (e.g. I use navigation.ini):
resources.router.routes.sitemap.route = "sitemap.xml" resources.router.routes.sitemap.defaults.controller = index resources.router.routes.sitemap.defaults.action = sitemap
Example code for outputting can be seen by creating an action in the appropriate controller (e.g. my sitemap lies in the index controller, sitemap action):
<php class IndexController extends Zend_Controller_Action { /** * Renders a sitemap based on Zend_Navigation setup */ public function sitemapAction() { echo $this->view->navigation()->sitemap(); $this->view->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); } }
Sitemaps can quickly and easily be generated using Zend_Navigation, a great quick tutorial (and generally very useful for Zend Framework tutorials) is Zend Casts – Dynamically creating a menu a sitemap and breadcrumbs.