Index: mod_rewrite_helper.php =================================================================== --- mod_rewrite_helper.php (revision 12690) +++ mod_rewrite_helper.php (working copy) @@ -38,6 +38,13 @@ var $_modulePrefix = false; /** + * Charset, used to parse url, while language is not detected from it + * + * @var string + */ + var $_charset = 'UTF-8'; + + /** * Constructor of kModRewriteHelper class * * @return kModRewriteHelper @@ -120,7 +127,7 @@ } $vars = Array ('pass' => Array ('m')); - $url_parts = $url ? explode('/', trim(mb_strtolower($url), '/')) : Array (); + $url_parts = $url ? explode('/', trim(mb_strtolower($url, $this->_charset), '/')) : Array (); if (($this->HTTPQuery->Get('rewrite') == 'on') || !$url_parts) { $this->_setDefaultValues($vars); @@ -612,7 +619,7 @@ // 1. Set virtual page as template, this will be replaced to physical template later in kApplication::Run. // 2. Don't set CachedTemplate field as template here, because we will loose original page associated with it's cms blocks! - $vars['t'] = strtolower( preg_replace('/^Content\//i', '', $last_category_info['NamedParentPath']) ); + $vars['t'] = mb_strtolower( preg_replace('/^Content\//i', '', $last_category_info['NamedParentPath']), $this->_charset ); $vars['m_cat_id'] = $last_category_info['CategoryId']; $vars['is_virtual'] = true; // for template from POST, strange code there!