Кристалин е направил добро предложение!
Защп да е на латиница?
Защото смесването на латиница и кирилица в адреса не е никак за предпочитане - ред причини, а пък и изглежда странно и смешно...
Но най-вече заради механизма на "разчитане" на Френдли УРЛ (ФУРЛ).
Когато имаме включени ФУРЛ в Конфигурацията, то означава, че адресите на страниците ще са четими, като наименованието на документа е полето "alias". В Конфигурацията са включени няколко параметъра, които са от значение - префикс, суфикс, дублиране...
Когато ползваме ФУРЛ, то използваме файл .htaccess:
# For Friendly URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Тази част ни отвежда към правилния номер на страницата която отваряме.
Механизма за разчитане (на база параметрите по-горе) е записан в ядрото на системата.
Поради няколко причини, не е коректно да се променя самото ядро - няй-малко след ъпдейт промените ще липсват...
За това препоръчвам да се създават страниците на латиница - това означава САМО полето "alias" на документа да е на латиница.
Генерирането на страници може да стане по различни начини, но е добре в инструмента който се ползва (NewsEditor, NewsPublisher) да се вмъкне функция:
function do_translit($st) {
$replacement = array(
"й"=>"i","ц"=>"c","у"=>"u","к"=>"k","е"=>"e","н"=>"n",
"г"=>"g","ш"=>"sh","щ"=>"sh","з"=>"z","х"=>"x","ъ"=>"\'",
"ф"=>"f","ы"=>"i","в"=>"v","а"=>"a","п"=>"p","р"=>"r",
"о"=>"o","л"=>"l","д"=>"d","ж"=>"zh","э"=>"ie","ё"=>"e",
"я"=>"ya","ч"=>"ch","с"=>"c","м"=>"m","и"=>"i","т"=>"t",
"ь"=>"\'","б"=>"b","ю"=>"yu",
"Й"=>"I","Ц"=>"C","У"=>"U","К"=>"K","Е"=>"E","Н"=>"N",
"Г"=>"G","Ш"=>"SH","Щ"=>"SH","З"=>"Z","Х"=>"X","Ъ"=>"\'",
"Ф"=>"F","Ы"=>"I","В"=>"V","А"=>"A","П"=>"P","Р"=>"R",
"О"=>"O","Л"=>"L","Д"=>"D","Ж"=>"ZH","Э"=>"IE","Ё"=>"E",
"Я"=>"YA","Ч"=>"CH","С"=>"C","М"=>"M","И"=>"I","Т"=>"T",
"Ь"=>"\'","Б"=>"B","Ю"=>"YU",
);
foreach($replacement as $i=>$u) {
$st = mb_eregi_replace($i,$u,$st);
}
return $st;
}
която да се вика при създаването на полето "alias". Например, в NewsEditor:
// set alias name of document used to store articles
if(!$aliastitle){
$alias = 'news-'.$createdon;
}else {
$alias = $modx->stripTags($_POST['pagetitle']);
$alias = do_translit($alias);
$alias = strtolower($alias);
$alias = preg_replace('/&.+?;/', '', $alias); // kill entities
$alias = preg_replace('/[^\.%a-z0-9 _-]/', '', $alias);
$alias = preg_replace('/\s+/', '-', $alias);
$alias = preg_replace('|-+|', '-', $alias);
$alias = trim($alias, '-');
$alias = 'news-'.$modx->db->escape($alias);
}