Да, Yii предоставляет простой способ реализовать собственную URL-логику с помощью пользовательских классов URL-адресов"обратных вызовов".
По сути, вы объявите новое правило, которое указывает на ваш новый класс декодера / кодировщика:
'rules' => array(
'' => 'site/index', // normal URL rules
array( // your custom URL handler
'class' => 'application.components.CustomUrlRule',
),
),
Ваш класс URL будет выглядеть примерно так:
class CustomUrlRule extends CBaseUrlRule {
public function createUrl($manager,$route,$params,$ampersand) {
return your_encrypt_method($route);
}
public function parseUrl($manager,$request,$pathInfo,$rawPathInfo) {
return your_decrypt_method($pathInfo);
}
}