Как решит проблему с некрасивыми urlами

Сразу прошу прощения. за пропущенные буквы(

Подскажите, куда копать, что почитать на тему создания своих urlов.

А то получается как то не приятно.

мне нужно получить url вида

домен/pay/а тут динамическая переменная к примеру хэш/

пример такой ссылки

mysite.ru/pay/12342/

mysite.ru/pay/12343/

mysite.ru/pay/12344/

и т.д.

Пытаюсь сделать хотя бы такого вида:

mysite.ru/pay/p/12344/

передавая в actionIndex переменную, вот так actionIndex($p), но yii расценивает p не как переменную, а как action и выдает ексепшн.

Получается только такого вида:

mysite.ru/pay/p/p/12344/

передавая в actionP переменную, вот так actionP($p) , но по моему такие ссылки - это совсем не красиво и не приемлемо( неужели в yii нет решения такой задачи?

Подскажите, какие нибудь расширения,плагнины,модули или может другие простые решения такой проблемы, что бы можно было получить первый вариант, ну на худой конец хотя бы второй.

Начнем с того, что такое "pay"? папка на сервере (/public_html/pay), контроллер PayController, или ещё что?

Yii делает очень простой маппинг вида: ControllerName/ActionName/GetVariableName/GetVariableValue.

Скорее всего у вас какая-то кривая структура разделов сайта. Допустим, если у вас какие-нибудь заказы, то правильнее всего будет сделать так:




OrderController  extends Controller { 

    actionPay ( $orderNumber ) {

    

    }; 

}



Тогда и ссылка будет понятного вида: mysite.ru/order/pay/ordernumber/12344 (будет работать и mysite.ru/order/pay?ordernumber=12344

Почитать про маппинг в Йии можно тут http://www.yiiframework.com/doc/guide/1.1/en/topics.url

Да и вообще советую весь Definitive Guide прочитать - сразу куча вопросов отпадет. Он даже на русском есть.

Вот такое правило прописать в конфиге:


'rules' => array(

    ....

    'pay/<id:\d+>' => 'pay/index',

    ....

),

После этого все запросы на /pay/12312313 отправятся контроллеру pay на экшн index, с установкой именованного параметра id.

Понятно, что имя параметра любое можно выбрать.

Можно также свои классы для роутинга писать rmcreative.ru/blog/post/svoi-klassy-dlja-pravil-routera-yii