Вопрос конечно ж сильный ))) Руслан все верно ответил, но если пилите уже чье то либо нет желания переписывать часть коде где уже используеться id то:
На вскидку чтото вроде завести спец поле куда транслитировать заголовок страницы в чпу ()
к примеру из базы вытянули такое (в идеале собрались вставить в базу)
id=567
title=Я пост супер тема
discr=Этот посто про супер тему
body=Тут вся хрень хтмл и картинки и тп и тд
Ну и берете title гуглите функцию что то аля CyrToLat + замена пробелов на "_" и впуть добавляете в базу либо подменяете через .htaccess по 301
вобщем что бы в результате было что то
....
$chpu_title = CyrToLat ($result->title);
$db->add_field_to_table($table, $chpu_title)->where(id=$result->id);
....
что бы появилось поле в базе
chpu_title=ya_post_super_tema
А далее как хотите, если у вас по id определяет то подставляете chpu_title либо уже так и формируете ссылки взяв chpu_title вместо id.
Вообще как то странно... такой вопрос, про такой фреймворк вызывает дисонанс.