As @ user3584460 says, I decided to change all my routes to pass the desired controller / action as a querystring parameter. Here is how it was done.
I changed all routes to pass the _url parameter:
RewriteRule "^noticias/?$" index.php?_url=/noticias/frontend/list/ [L,QSA]
Thus, I would not get the "No input file defined" error, but the infrastructure (zend) did not recognize the route and always showed the home page.
The route manager expected the $requestUri variable to be in the format index.php/module/controller/action , but with the change .htaccess it was index.php?_url=/module/controller/action . So I had to make some changes to the Zend_Controller_Request_Http class, so it will do the conversion.
So, I added the following lines to the setRequestUri method:
public function setRequestUri($requestUri = null) { // ... // begin changes preg_match('/_url=([a-zA-Z0-9\/\-_\.]+)&?(.*)/', $requestUri, $matches); if (count($matches) == 3) $requestUri = '/index.php' . $matches[1] . '?' . $matches[2]; // end changes $this->_requestUri = $requestUri; return $this; }
Now it works great.
Lucas ferreira
source share