Index: branches/5.3.x/core/kernel/managers/rewrite_url_processor.php =================================================================== diff -u -N -r15698 -r15902 --- branches/5.3.x/core/kernel/managers/rewrite_url_processor.php (.../rewrite_url_processor.php) (revision 15698) +++ branches/5.3.x/core/kernel/managers/rewrite_url_processor.php (.../rewrite_url_processor.php) (revision 15902) @@ -1,6 +1,6 @@ modulePrefix = $prefix; + } + + /** * Parses url * * @return void @@ -399,6 +411,7 @@ $url_parts = $string ? explode('/', mb_strtolower($string)) : Array (); + $this->setModulePrefix(false); $this->_partsToParse = $url_parts; if ( ($this->HTTPQuery->Get('rewrite') == 'on') || !$url_parts ) { @@ -421,16 +434,14 @@ // http://site-url///[_]/ (category-based detail template) // http://site-url////[_]/ (customized url) - if ( $this->_processRewriteListeners($url_parts, $vars) ) { - return $vars; - } + if ( !$this->_processRewriteListeners($url_parts, $vars) ) { + // rewrite listener wasn't able to determine template + $this->_parsePhysicalTemplate($url_parts, $vars); - $this->_parsePhysicalTemplate($url_parts, $vars); - - if ( ($this->modulePrefix === false) && $vars['m_cat_id'] && !$this->_partsToParse ) { - // no category item found, but category found and all url matched -> module index page - - return $vars; + if ( ($this->modulePrefix === false) && $vars['m_cat_id'] && !$this->_partsToParse ) { + // no category item found, but category found and all url matched -> module index page + return $vars; + } } if ( $this->_partsToParse ) { @@ -1047,6 +1058,7 @@ unset($params['escape']); } + // TODO: why? $ret = str_replace('%2F', '/', urlencode($ret)); if ( $params ) {