I have an application running on Zend Framework 1.12 and I am using the URL view helper. I also have a few custom routes which I use with the URL helper to clean the code.
When I use a format such as this:
$this->url(array('module' => 'myapp', 'controller' => 'index', 'action' => 'index'), 'default', true)
The resulting string is a relative path to the action - /myapp/index/index
But when I use a custom route as such:
$this->url(array('var' => 'value'), 'custom-route', true)
The resulting string is an absolute path - http://www.domain.com/custom-route
I don't understand why is this happening and I can't find any information about this behavior online. Furthermore, I wish to know if there's a way to prevent it from happening and produce consistency in the way the URL view helper works (preferably to always return a relative path).
Thanks.
I think this is as simple as your first example being a default type Zend_Controller_Router_Route_Module
route that is normally relative.
Your second example is a named route so it needs to include the base url in order to be valid. I don't believe rewritten routes can be relative as the route may or may not refer to an actual location.
I've done some limited testing and I believe that if you set your baseUrl value the first example will also include the host address. So for consistency your urls will always be absolute.
//application.ini
resources.frontController.baseurl = http://www.domain.com
Hope this helps.