Здравствуйте!
Выяснилось, что стандартный компонент поиска с включенным SEO, если слово или фраза содержат заглавную русскую "Р", работает неправильно. Из-за скромных познаний в теме пришлось долго и много копать - вначале стандартный плагин content - search, затем стандартный компонент поиска. Искал я место в программном коде, которое в строке utf-8 с кодами русской Р меняет D0 A0 на D0 20.
Докопался до нужного на мой взгляд места. В контроллере компонента com_search, функция search(), последняя строка кода - вызывается метод JRoute::_(). И вот в нем-то строка с заглавной Р и портится.
Файл \libraries\joomla\methods.php - реализация класса JRoute и метода JROUTE::_()
// Replace spaces
$url = preg_replace('/\s/', '%20', $url);
Переменная $url соответственно на входе и на выходе этой функции:
/component/search/КОРБАН.html?ordering=&searchphrase=all
/component/search/КО�%20БАН.html?ordering=&searchphrase=all
Насколько я понимаю, этот вызов preg_replace должен заменить любой пробельный символ на последовательность %20. Но почему заглавная русская Р засчитана как пробельный символ?
С уважением